Sql server 比较两个字段,根据结果更新其中一个字段
我有一个具有多个Sql server 比较两个字段,根据结果更新其中一个字段,sql-server,Sql Server,我有一个具有多个联接的查询。我需要将一个表的字段与一个秒的字段进行比较。如果第一个字段小于另一个字段,我需要用第二个字段覆盖第一个字段。这可以用case或if语句来实现吗?查询提取数据,然后创建一个结果集,该结果集在一行中包含多行。PK是唯一的_键,linex 例如: 唯一密钥、第1行、人员id、服务日期、金额 唯一密钥、第2行、人员id、服务日期、金额 唯一密钥,第3行,人员id,服务日期,金额 Select t1.Unique_key, t1.linex, t1.person_id,t1.s
联接的查询。我需要将一个表的字段与一个秒的字段进行比较。如果第一个字段小于另一个字段,我需要用第二个字段覆盖第一个字段。这可以用case或if语句来实现吗?查询提取数据,然后创建一个结果集,该结果集在一行中包含多行。PK是唯一的_键,linex
例如:
唯一密钥、第1行、人员id、服务日期、金额
唯一密钥、第2行、人员id、服务日期、金额
唯一密钥,第3行,人员id,服务日期,金额
Select t1.Unique_key, t1.linex, t1.person_id,t1.service_date, t1.amount, t2.service_date, t2.amount, t3.service_date, t3.amount
from tbl1 t1
left join tbl2 t2
on t1.unique_key = t2.unique_key
left join tbl3 t3
on t1.unique_key = t3.unique_key
如果第二个保养日期大于第一个保养日期,我需要用第二个保养日期更新第一个保养日期
查询比这更复杂
case when t2.service_date > t1.service_date
then t2.service_date
else t1.service_date
end as service_date
还是我遗漏了什么?您需要重命名t1.service\u日期字段:
Select t1.Unique_key
, t1.linex
, t1.person_id
, iif(t2.service_date > t1.service_date, t2.service_date, t1.service_date) as [Overlayed_Service_Date]
, t1.amount
, t2.service_date
, t2.amount
, t3.service_date
, t3.amount
from tbl1 t1
left join tbl2 t2 on t1.unique_key = t2.unique_key
left join tbl3 t3 on t1.unique_key = t3.unique_key
这是什么意思查询提取数据,然后创建一个结果集,该结果集在一行中包含多行。
透视表是