1
我有两个表。第一次在12个月内有所有变动,第二次在同一段时间登记。当我从第一个表中运行以下查询时,我有10条记录。当然,还有其他的记录具有不同数目的动作(例如:7,23,2个运动):SQL使用另一个数据更新一个单行表
select t.cod_suc
,t.cod_ramo_comercial
,t.Poliza
,t.Item
,t.id_pv
from temp_portafolio_personal_accidents as t
where t.cod_suc = 2
and t.cod_ramo_comercial = 46
and t.Poliza = 50283
and t.Item = 1
and t.id_pv = 788383;
在第二查询中,第二个表,我有以下结果:
select c.cod_suc
,c.cod_ramo_comercial
,c.[No. Policy]
,c.Item
,c.[ID Incident]
,max(c.id_pv) as id_pv
,count(distinct [No. Incident]) as 'Conteo R12'
from #claims as c
where c.[ID Incident] = 343632
group by c.cod_suc
,c.cod_ramo_comercial
,c.[No. Policy]
,c.Item
,c.[ID Incident];
现在,我需要更新的第一个表,但只有一个记录。我正在使用以下查询,但所有记录正在更新。当我总结结果时,我有10个,但只是一个索赔,如第二个查询所示。
update p
set [No. Siniestros R12] = b.[Conteo R12]
from temp_portafolio_personal_accidents p
left join
(select c.cod_suc
,c.cod_ramo_comercial
,c.[No. Policy]
,c.Item
,c.[ID Incident]
,max(c.id_pv) as id_pv
,count(distinct [No. Incident]) as 'Conteo R12'
from
#claims as c
where c.[ID Incident] = 343632
group by c.cod_suc
,c.cod_ramo_comercial
,c.[No. Policy]
,c.Item
,c.[ID Incident]
) b
on p.id_pv = b.id_pv
and p.cod_suc = b.cod_suc
and p.cod_ramo_comercial = b.cod_ramo_comercial
and p.Poliza = b.[No. Policy]
and p.Item = b.Item
where p.id_pv = 788383;
你的表temp_portafolio_personal_accidents有一个ID(其唯一行标识符)? – scaisEdge
你能指定你想更新哪一个“一条记录”吗?他们中的任何一个会做? – DVT
为什么使用“左连接”?如果没有相应的记录,那么你会设置[No. ... R12]为NULL? – DVT