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

这是什么意思
查询提取数据,然后创建一个结果集,该结果集在一行中包含多行。
透视表是