我搜索和搜索,似乎無法弄清這個問題: 我們有三個表中有我需要收集並顯示在視圖中的數據。SQL Server 2005查詢通過日期刪除重複
SELECT
C.FirstName, C.LastName,
aspnet_Membership.LoweredEmail,
MAX(Bill.Code) AS BCodes,
MAX(Bill.BillDate)
FROM
dbo.Client C
INNER JOIN
dbo.Bill ON C.Id = Bill.BId
INNER JOIN
dbo.aspnet_Membership ON aspnet_Membership.UserId = C.UserGUID
WHERE
((Bill.Code='ASDF'
OR Bill.Code='XYZ'
OR Bill.Code='QWE'
OR Bill.Code='JKL')
AND C.LastName!='Unassigned')
GROUP BY
LastName, FirstName, LoweredEmail, Code, BDate
客戶表有:FirstName LastName and UserGuid
比爾表有:BCode, BillDate
aspnet_Membership表有:E-mail, UserId
結果:
FirstName LastName E-mail BCode BillDate
FName1 Lname1 [email protected] XYZ 2010-05-13 00:00:00.000
Fname2 Lname2 [email protected] XYZ 2010-06-05 00:00:00.000
Fname2 Lname2 [email protected] ASD 2008-09-17 12:01:45.407
正如你可以看到Fname2
小號升起兩倍,唯一的區別是在BCode
和BillDate
。
我怎樣才能讓這個去與最新的日期,所以我得到Fname2
記錄與XYZ的Bcode與日期2010-06-05。
任何幫助將不勝感激,謝謝你提前。
你的groupby BCode讓你有這種行爲。不知何故,如果你可以從你的groupby中刪除代碼,它應該沒問題。 – 2011-02-03 09:13:12
而且BDate也是。基本上,如果你正在聚合一個列(使用MAX,SUM等),不要把它放在GROUP BY中,反之亦然。 – 2011-02-03 10:34:26