是否有一种方法来合并这两个表在SQL Server 2008?



是否有办法将这些表合并为一个?其思想是,查询识别第二个表上已经存在的行,然后更新最终表上的这些行。

我知道非常基本的SQL,左连接不能解决问题,联合使它更复杂,我非常困惑使用"EXISTS",我也不确定我是否应该使用一个varchar作为连接条件。

期望的结果类似于:

tbody> <<tr>4217
Total Section EsConCita esexpecada EsAtrasada EsAtrasada
0Enero区000
Febrero4200
0Marzo000
0Abril000
梅奥1232
12Junio1200

您似乎想要left join,然后从@aux中获取值,如果它存在:

select coalesce(nullif(a.total, 0), b.total, 0), b.section,
coalesce(nullif(a.EsConCita, 0), b.EsConCita, 0) as EsConCita,
coalesce(nullif(a.EsAnticipada, 0), b.EsAnticipada, 0) as EsAnticipada,
coalesce(nullif(a.EsAtrasada, 0), b.EsAtrasada, 0) as EsAtrasada
from @base b full join
@aux a
on b.section = a.section

我认为您需要的查询是一个简单的join

update b set 
b.Total=a.total,
b.EsConCita=a.EsConCita,
b.EsAnticipada=a.EsAnticipada,
b.EsAtrasada=a.EsAtrasada
from @base b join @aux a on a.Section=b.Section

最新更新