| Detta villkor är uppfyllt... | ...om denna SQL... | ...returnerar | ... och eventuell kommentar. |
|---|---|---|---|
| Alla värden på CIVILBDAT ska ligga i intervallet 16000000-19800000 |
select count(*)
from K136.CIVILSTAND
where not CIVILBDAT between 16000000 and 19800000
or CIVILBDAT is null
|
0 | |
| Om CIVILBTYP = 1 (Födelse) måste personens CIVILBDAT vara detsamma som födelsedatum i sv.PERSON |
select count(*)
from K136.CIVILSTAND c
left join sv.PERSON p on c.DDBID = p.DDBID
where c.CIVILBTYP = 1
and c.CIVILBDAT != p.FODDAT
|
0 | |
| Om CIVILBTYP = 2 (Lysning) måste personens CIVILBDAT vara detsamma som lysningsdatum i sv.LV |
with lysdatOK as (
Select c.DDBID
from K136.CIVILSTAND c
left join sv.individ i on i.DDBID = c.DDBID
left join sv.lv l on l.postnr = i.postnr
where c.CIVILBDAT = l.LYSDAT
)
select count(*)
from K136.CIVILSTAND a
where CIVILBTYP = 2
and a.ddbid not in
(select t.ddbid from lysdatOK t)
|
0 | |
| Om CIVILBTYP = 3 (Vigsel) måste personens CIVILBDAT vara detsamma som vigseldatum i sv.LV eller vigseldatum i HLCIV |
with vigdatOK as (
Select c.DDBID, c.CIVIL, c.CIVILNR, c.CIVILBTYP
, c.CIVILBDAT, c.CIVILSTYP, c.CIVILSDAT,h.CIVHLDAT
,i.DDBID i_DDBID, i.POSTNR i_POSTNR, i.INDIVIDTYP i_INDIVIDTYP
, i.KON i_KON, i.CIV i_CIV, i.FNAMNTXT i_FNAMNTXT
, i.ENAMNTXT i_ENAMNTXT, i.FODDAT i_FODDAT
, l.POSTNR l_POSTNR, l.LYSDAT l_LYSDAT,
case when l.VIGDAT between 17530217 and 17530231
then 17530200
else l.VIGDAT
end as l_VIGDAT
from K136.CIVILSTAND c
left join sv.individ i on i.DDBID = c.DDBID
left join sv.lv l on l.postnr = i.postnr
left join sv.hlciv h on h.postnr = i.postnr
),
vigdatOK_temp as (
select *
from vigdatOK
where (CIVILBDAT = l_VIGDAT or CIVILBDAT = CIVHLDAT)
)
select count(*)
from K136.CIVILSTAND a
where CIVILBTYP = 3
and a.ddbid not in (select t.ddbid from vigdatOK_temp t)
|
0 | Frågan kompenserar för att två personer har ett gemensamt vigseldatum i slutet på februari 1753. På grund av förändring av kalendern detta år anses detta datum vara ologiskt och sätts i programmet till 17530200. |
| Om CIVILBTYP = 4 (Skilsmässa) måste personens CIVILBDAT vara detsamma som upplösningsdatum i HLCIV och
upplösningsorsak ska vara skilsmässa Alternativt måste partnern ha CIVILBDAT vara detsamma som upplösningsdatum i HLCIV. |
with temp as (
Select c.DDBID
from K136.CIVILSTAND c
left join sv.individ i on i.DDBID = c.DDBID
left join sv.hlciv h on h.postnr = i.postnr
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
where (c.CIVILBDAT = h.CIVHLDAT and h.UPLORS = 2) or
(c.CIVILBDAT = rhc.CIVHLDAT and rhc.UPLORS = 2)
)
select count(*)
from K136.CIVILSTAND a
where CIVILBTYP = 4
and a.ddbid not in (select t.ddbid from temp t)
|
0 | |
| Om CIVILBTYP = 5 (Partners död) måste måste personens CIVILBDAT vara detsamma som partners dödsdatum | with temp as ( Select c.DDBID from K136.CIVILSTAND c left join sv.individ i on i.DDBID = c.DDBID left join sv.REL r on i.ddbid = r.ddbid1 and r.rtyp = 3 left join sv.PERSON ppart on ppart.ddbid = r.ddbid2 where c.CIVILBDAT = ppart.DODDAT ) select count(*) from K136.CIVILSTAND a where CIVILBTYP = 5 and a.ddbid not in (select t.ddbid from temp t) |
0 |