| Detta villkor är uppfyllt... | ...om denna SQL... | ...returnerar ett antal som ej överstiger gränsvärdet | Antal | Gränsvärde | ... och eventuell kommentar. |
|---|---|---|---|---|---|
| Alla värden på CIVILSDAT ska ligga i intervallet 16000000-19800000 |
select count(*)
from K136.CIVILSTAND
where not CIVILSDAT between 16000000 and 19800000
or CIVILSDAT is null
|
OK | 0 | 0 | |
| CIVILSDAT ska inte kunna vara mindre än CIVILBDAT. |
select count(*)
from k136.CIVILSTAND
where ddb.fixdatum(CIVILSDAT,2) < ddb.fixdatum(CIVILBDAT,1)
|
OK | 119 | 200 | Det finns ett antal personer som av olika orsaker får ett slutdatum som är före startdatum, t.ex. personer som har dödsdatum före födelsedatum |
| Om CIVILSTYP = 1 (Egen död) måste personens CIVILSDAT vara detsamma som dödsdatum i sv.PERSON |
select count(*)
from K136.CIVILSTAND c
left join sv.PERSON p on c.DDBID = p.DDBID
where c.CIVILSTYP = 1
and c.CIVILSDAT != p.DODDAT
|
OK | 0 | 0 | |
| Om CIVILSTYP = 2 (Lysning) måste personens CIVILSDAT 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.CIVILSDAT = l.LYSDAT
)
select count(*)
from K136.CIVILSTAND a
where CIVILSTYP = 2
and a.ddbid not in
(select t.ddbid from lysdatOK t)
|
OK | 0 | 0 | |
| Om CIVILSTYP = 3 (Vigsel) måste personens CIVILSDAT vara detsamma som vigseldatum i sv.LV eller vigseldatum i HLCIV |
with vigdatOK as (
Select c.DDBID,h.CIVHLDAT,c.CIVILSDAT,l.vigdat,
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 (CIVILSDAT = l_VIGDAT or CIVILSDAT = CIVHLDAT)
)
select count(*)
from K136.CIVILSTAND a
where CIVILSTYP = 3
and a.ddbid not in (select t.ddbid from vigdatOK_temp t)
|
OK | 0 | 0 | Frågan kompenserar för att en person har ett 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 CIVILSTYP = 4 (Skilsmässa) måste personens CIVILSDAT vara detsamma som upplösningsdatum i HLCIV och
upplösningsorsak ska vara skilsmässa Alternativt måste partnern ha CIVILSDAT 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.lv l on l.postnr = i.postnr
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.CIVILSDAT = h.CIVHLDAT and h.UPLORS = 2) or
(c.CIVILSDAT = rhc.CIVHLDAT and rhc.UPLORS = 2)
)
select count(*)
from K136.CIVILSTAND a
where CIVILSTYP = 4
and a.ddbid not in
(select t.ddbid from temp t)
|
OK | 0 | 0 | |
| Om CIVILSTYP = 5 (Partners död) måste måste personens CIVILSDAT 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.CIVILSDAT = ppart.DODDAT ) select count(*) from K136.CIVILSTAND a where CIVILSTYP = 5 and a.ddbid not in (select t.ddbid from temp t) |
OK | 0 | 0 |