CIVILBTYP i civilståndstabellen

Detta villkor är uppfyllt... ...om denna SQL... ...returnerar ... och eventuell kommentar.
Alla värden på CIVILBTYP ska finnas i kodtabellen, kod.KODCIVILBTYP
select count(*)
from K136.CIVILSTAND c
where c.CIVILBTYP not in
   (select kc.KOD from kod.KODCIVILBTYP kc)
            
0
Alla värden i kodtabellen, kod.KODCIVILBTYP, ska finnas representerade i CIVILBTYP
select count(*)
from kod.KODCIVILBTYP kc
where kc.KOD not in 
   (select c.CIVILBTYP from K136.CIVILSTAND c)
            
0
Om CIVILBTYP = 1 (Födelse) måste personen ha ett födelsedatum
with temp as (
Select i.DDBID i_DDBID
from sv.individ i
left join sv.person p on p.ddbid = i.ddbid
where (p.foddat > 0) 
and i.ddbid is not null 
)
Select count(*) 
from K136.CIVILSTAND c
where c.CIVILBTYP = 1 
and c.ddbid not in (select t.i_ddbid from temp t)

            
0
Om CIVILBTYP = 2 (Lysning) måste personen ha ett lysningsdatum i LV
with temp as (
Select i.DDBID i_DDBID
from sv.individ i
left join sv.lv l on l.postnr = i.postnr
left join sv.hlciv hc 
  on hc.postnr = i.postnr 
    and hc.CIVHLTYP = 1
where (hc.civhldat > 0 or l.vigdat > 0)
)
Select count(*) 
from K136.CIVILSTAND c
where c.CIVILBTYP = 1
and c.ddbid not in (select t.i_ddbid from temp t)
            
0
Om CIVILBTYP = 3 (Vigsel) måste personen ha ett vigseldatum i LV eller ett vigseldatum i sv.HLCIV
with temp as (
Select i.DDBID i_DDBID
from sv.individ i
left join sv.lv l on l.postnr = i.postnr
left join sv.hlciv hc 
  on hc.postnr = i.postnr 
    and hc.CIVHLTYP = 1
where (hc.civhldat > 0 or l.vigdat > 0) 
and i.ddbid is not null 
)
Select count(*) 
from K136.CIVILSTAND c
where c.CIVILBTYP = 3
and c.ddbid not in (select t.i_ddbid from temp t)

            
0
Om CIVILBTYP = 4 (Skilsmässa) måste personen ha skilsmässa som upplösningsorsak i HL (UPLORS = 2 i sv.HLCIV).

Alternativt måste partnern ha UPLORS = 2 i SV.HLCIV.
with temp as (
Select i.DDBID i_DDBID
from sv.individ i
left join sv.hlciv hc on hc.postnr = i.postnr 
                     and hc.CIVHLTYP = 2
left join sv.rel r on i.ddbid = r.ddbid1 
                  and rtyp = 3 
left join sv.individ ri on r.ddbid2 = ri.ddbid
left join sv.hlciv rhc on rhc.postnr = ri.postnr 
                      and rhc.CIVHLTYP = 2
where (hc.UPLORS = 2 or rhc.UPLORS = 2) 
and i.ddbid is not null
)
Select count(*) 
from K136.CIVILSTAND c
where c.CIVILBTYP = 4
and c.ddbid not in (select t.i_ddbid from temp t)

            
0
Om CIVILBTYP = 5 (Partners död) måste personen ha en partner som har dödsdatum i sv.PERSON och
  • partnerns dödsdatum måste vara mindre än personens dödsdatum, alternativt att personens dödsdatum inte är känt (DODDAT = 0) eller
  • i de fall personens dödsdatum är ofullständigt och partnerns dödsdatum därmed är större måste dödsåret vara detsamma.
with temp as (
Select i.DDBID i_DDBID 
from sv.individ i
left join sv.REL r 
  on i.ddbid = r.ddbid1 
    and r.rtyp = 3 
left join sv.PERSON pper 
  on pper.ddbid = i.ddbid
left join sv.PERSON ppart  
  on ppart.ddbid = r.ddbid2 
where (ppart.doddat > 0 and 
(  
  ppart.doddat < pper.doddat or 
  pper.doddat = 0 or
 (  ppart.doddat >= pper.doddat 
      and ppart.doddat/10000 = pper.doddat/10000 ) 
) )
and i.ddbid is not null 
)
Select count(*) 
from K136.CIVILSTAND c
where c.CIVILBTYP = 5
and c.ddbid not in (select t.i_ddbid from temp t)

            
0