| Detta villkor är uppfyllt... | ...om denna SQL... | ...returnerar | ... och eventuell kommentar. |
|---|---|---|---|
| När VIGTYP > 0 ska det vara samma värde som i LV. Om LV saknas ska det vara samma värde som i HLCIV. Om personen saknar värde hämtas värde från partner. Om värde helt saknas sätt värdet till 0. |
with Unika_Aktenskap as (
select distinct a.DDBID,a.PDDBID,a.vigdat,a.vigtyp
from k136.AKTENSKAP a
)
,Finns_Aktenskaps_Vigdat_Vigtyp_i_LV as (
select distinct a.DDBID,a.PDDBID,a.vigdat,c.vigtyp as lvvigtyp
from Unika_Aktenskap a
join sv.INDIVID b on b.ddbid=a.ddbid
join sv.LV c on b.postnr=c.postnr and a.vigdat=c.vigdat and a.vigtyp=c.vigtyp
)
,Finns_Aktenskaps_Vigdat_Vigtyp_i_HLCIV as (
select distinct a.DDBID,a.PDDBID,a.vigdat,c.vigtyp as hlvigtyp
from Unika_Aktenskap a
join sv.INDIVID b on b.ddbid=a.ddbid
join sv.HLCIV c on b.postnr=c.postnr and a.vigdat=c.civhldat and c.civhltyp=1 and a.vigtyp=c.vigtyp
)
,Resultat as (
select a.DDBID,a.PDDBID,a.vigdat,a.vigtyp,b.lvvigtyp,c.hlvigtyp,b2.lvvigtyp as Plvvigtyp,c2.hlvigtyp as Phlvigtyp,
case when coalesce(b.lvvigtyp, coalesce(b2.lvvigtyp, coalesce(c.hlvigtyp, coalesce(c2.hlvigtyp, 0)))) = vigtyp then 'OK' else 'FEL' end as kontroll
from Unika_Aktenskap a
left join Finns_Aktenskaps_Vigdat_Vigtyp_i_LV b on a.ddbid=b.ddbid and a.pddbid=b.pddbid and a.vigdat=b.vigdat
left join Finns_Aktenskaps_Vigdat_Vigtyp_i_HLCIV c on a.ddbid=c.ddbid and a.pddbid=c.pddbid and a.vigdat=c.vigdat
left join Finns_Aktenskaps_Vigdat_Vigtyp_i_LV b2 on a.pddbid=b2.ddbid and a.ddbid=b2.pddbid and a.vigdat=b2.vigdat
left join Finns_Aktenskaps_Vigdat_Vigtyp_i_HLCIV c2 on a.pddbid=c2.ddbid and a.ddbid=c2.pddbid and a.vigdat=c2.vigdat
)
select count(*) from Resultat
where kontroll != 'OK'
|
0 |