Verifiera generella krav för äktenskapstabellen

Detta villkor är uppfyllt... ...om denna SQL... ...returnerar ett antal som ej överstiger gränsvärdet Antal Gränsvärde ... ev. kommentar.
Alla partners ska ha samma vigseldatum
select count(*)
from k136.AKTENSKAP a
join k136.AKTENSKAP b on a.ddbid=b.pddbid
                     and a.pddbid=b.ddbid
where  a.vigdat != b.vigdat
            
OK 0 0
Alla partners ska ha samma vigseltyp
select count(*)
from k136.AKTENSKAP a
join k136.AKTENSKAP b on a.ddbid=b.pddbid
                     and a.pddbid=b.ddbid
where  a.vigtyp != b.vigtyp
            
OK 0 0
Alla partner ska ha samma upplösningsdatum
select count(*)
from k136.AKTENSKAP a
join k136.AKTENSKAP b on a.ddbid=b.pddbid
                     and a.pddbid=b.ddbid
where  a.upldat != b.upldat
            
OK 0 0
Alla partners ska ha matchande upplösningstyp.
Giltiga kombinationer är:
1 och 1
1 och 2
2 och 1
3 och 3
4 och 4
select count(*)
from k136.AKTENSKAP a
join k136.AKTENSKAP b on a.ddbid=b.pddbid
                     and a.pddbid=b.ddbid
where a.upltyp = 1 and b.upltyp not in (1,2)
   or b.upltyp = 1 and a.upltyp not in (1,2)
   or a.upltyp = 2 and b.upltyp != 1
   or b.upltyp = 2 and a.upltyp != 1
   or a.upltyp = 3 and b.upltyp != 3
   or a.upltyp = 4 and b.upltyp != 4
            
OK 0 0
Alla äktenskap ska vara dubbelriktade när partner har id (PDDBID > 0)
select count(*)
from k136.AKTENSKAP a
left join k136.AKTENSKAP b on a.ddbid=b.pddbid
                          and a.pddbid=b.ddbid
where  a.pddbid > 0
   and b.ddbid is null
            
OK 0 0
En person ska inte kunna ha flera äktenskap med samma person.
with temp as (
select ddbid, pddbid, count(*) antal
from k136.AKTENSKAP
where ddbid > 0 and pddbid > 0
group by ddbid, pddbid 
having count(*) > 1
)
select count(*)
from temp
            
OK 0 0
En person ska inte kunna ha flera äktenskap på samma datum (fullständigt datum).
with temp as (
select ddbid, vigdat, count(*) antal
from k136.AKTENSKAP
where mod(vigdat, 100) > 0
group by ddbid, vigdat 
having count(*) > 1
)
select count(*)
from temp
            
OK 12 20 Det kan finnas ett fåtal personer som har registrerade äktenskap med olika partners på samma vigdat.
Finns det personer som har ett upplösningsdatum på en tidigare vigsel som är senare än vigseldatumet på en efterföljande?
select count(*) from k136.aktenskap a
join k136.aktenskap b on a.ddbid=b.ddbid
where a.upldat/10000 > b.vigdat/10000
  and a.upldat > b.vigdat
  and a.aktenskapnr < b.aktenskapnr
            
OK 0 0
Finns det personer som har samma vigdat på äktenskap med olika partners?
Select count(*) from k136.aktenskap a
join k136.aktenskap b on a.ddbid=b.ddbid
where a.vigdat=b.vigdat
  and a.aktenskapnr < b.aktenskapnr
  and mod(a.vigdat, 10000) > 0
            
OK 12 20 Det kan finnas ett fåtal personer som har registrerade äktenskap med olika partners på samma vigdat.