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