我已選擇完美的作品。基於選擇SQL服務器的更新聲明
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
的更新聲明。我需要在Clients
表中更新客戶端StatusID
,並將其設置爲4,僅限於此選擇中最後一次取件超過2個月前的客戶端。 到目前爲止,我有這個
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
。任何想法如何做到這一點?
不像組15615,級別15,狀態1,行6 關鍵字'組'附近的語法不正確。 – Andrey 2013-02-26 03:51:17
@AndreyIvanov我更新了答案。忘記'UPDATE FROM'不允許'GROUP BY'。 – 2013-02-26 04:14:18
它將所有客戶端設置爲不活動狀態ID 4,好,我在測試表上做了不在真正的表格中的數據庫:) – Andrey 2013-02-26 04:28:37