完璧に機能するものを選択しました。
update ClientS set StatusID=4
where ClientID= (select P.ClientID
,LastName+' '+FirstName as Name
,Address
,max(p.PickupDate)as 'Last Pickup'
,DATEDIFF(month,max(p.PickupDate),GETDATE())as'last pickup was months ago'
from Pickup P
join Clients C on P.ClientID= C.ClientID
where WIC=0 and C.StatusID = 1 or WIC=0 and C.StatusID = 2
group by p.clientid, lastname + ' ' + firstname,address
order by 4)
last pickup was months ago
この選択の1つに基づく更新ステートメントが必要です。StatusID
テーブル内のクライアントを更新Clients
し、2か月以上前に最後にピックアップしたこの選択のクライアントに対してのみ4に設定する必要があります。これまでのところ私はこれを持っています
create procedure pr_UpdateStatusHwoPickupMoreThanTwoM
AS
update ClientS set StatusID=4
where ClientID= (select P.ClientID
,LastName+' '+FirstName as Name
,Address
,max(p.PickupDate)as 'Last Pickup'
,DATEDIFF(month,max(p.PickupDate),GETDATE())as'last pickup was months ago'
from Pickup P
join Clients C on P.ClientID= C.ClientID
where WIC=0 and C.StatusID = 1 or WIC=0 and C.StatusID = 2
group by p.clientid, lastname + ' ' + firstname,address
order by 4)
私はそれが正しくないことを知っています、私はどういうわけか最後のピックアップが2ヶ月以上前であったことを指定する必要がありますが、それをどのように理解しStatusID
、それらのためだけに変更することはできませんClientID
。それを行う方法について何かアイデアはありますか?