【发布时间】:2013-02-11 09:47:34
【问题描述】:
我选择了完美的选择。
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 个多月前,但无法弄清楚如何仅为那些 ClientID 更改 StatusID。任何想法如何做到这一点?
【问题讨论】:
标签: sql sql-server select sql-update updates