我有一张桌子:
数据表详情:
ID ReferenceNumber Status AuditPeriod CustomerStatus
1 112 Expired 1/1/2016
2 113 Pending 1/1/2016
3 114 Expired 1/1/2016
4 115 Pending 2/1/2016
5 116 Approved 2/1/2016
6 117 Pending 2/1/2016
7 118 Approved 3/1/2016
8 119 Approved 3/1/2016
现在我需要通过基于auditperiod进行分组来更新CustomerStatus列 状态栏。
条件1:如果至少一个状态在审核期间已过期,则 CustomerStatus未完成。
条件2:如果至少一个状态在审核期间等待,则 customerstatus正在等待。
条件3:如果所有状态均获得批准,则 customerStatus已完成。
最终输出应如下:
ID ReferenceNumber Status AuditPeriod CustomerStatus
1 112 Expired 1/1/2016 Not Completed
2 113 Pending 1/1/2016 Not Completed
3 114 Expired 1/1/2016 Not Completed
4 115 Pending 2/1/2016 Pending
5 116 Approved 2/1/2016 Pending
6 117 Pending 2/1/2016 Pending
7 118 Approved 3/1/2016 Completed
8 119 Approved 3/1/2016 Completed.
请告诉我这是否可以通过OUT OUT导出到另一个临时表(使用单个更新)
如果我方需要任何信息,请告诉我
答案 0 :(得分:2)
您可以使用以下查询尝试此操作
SELECT t1.ID, t1.ReferenceNumber, t1.Status, t1.AuditPeriod, t2.CustomerStatus from table1 t1
join (
select AuditPeriod,
CASE
WHEN SUM(CASE WHEN Status = 'Expired' then 1 else 0 end) > 0
THEN 'Not Completed'
WHEN SUM(CASE WHEN Status = 'Pending' then 1 else 0 end) > 0
THEN 'Pending'
ELSE 'Completed'
END CustomerStatus
from table1
group by AuditPeriod) t2
on t1.AuditPeriod = t2.AuditPeriod;
我得到了以下结果,
希望这会帮助你。