我已选择完美的作品。基于选择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