2 か月以上集荷しなかったクライアントを示すステートメントを作成しようとしています。すでに更新手順があり、必要に応じて機能します。
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か月以上集荷を行わなかったクライアントのみを表示するはずでしたが、エラーが発生しました
集計は、HAVING 句または選択リストに含まれるサブクエリ内になく、集計される列が外部参照でない限り、WHERE 句に表示されない場合があります。
この行が気に入らないよう where max(p.PickupDate)<DATEADD(month,-2,GETDATE())
です この問題を解決する方法はありますか?