我試圖寫它會告訴我誰沒有皮卡超過2個月 我已經有更新的程序爲它的客戶的陳述和它的作品,因爲它必須是用max函數select語句
update Clients
set StatusID=4
from (SELECT P.ClientID, MAX(p.PickupDate) MaxPickupDate
FROM Pickup P
group by P.Clientid) P
join Clients C on P.ClientID= C.ClientID
where C.StatusID in (1, 2)and C.WIC=0
AND P.MaxPickupDate<DATEADD(month,-2,GETDATE());
我還有其他的選擇
select P.ClientID
,LastName+' '+FirstName as Name
,Address
,max(p.PickupDate)
from Pickup P
join Clients C on P.ClientID= C.ClientID
where max(p.PickupDate)<DATEADD(month,-2,GETDATE())
group by p.clientid, lastname + ' ' + firstname,address
它應該告訴我只有客戶誰沒有做更多的2個月 皮卡,但它扔我錯誤
聚合可能不會出現在WHERE子句中,除非它位於包含在HAVING子句或選擇列表中的 子查詢中,而聚合的 列是外部引用。
看起來像它不喜歡這條線where max(p.PickupDate)<DATEADD(month,-2,GETDATE())
任何想法如何解決這個問題?
使用'HAVING',而不是'WHERE'。 http://stackoverflow.com/q/287474/139010和http://stackoverflow.com/q/6319183/139010 – 2013-03-17 23:52:44