Mit den Änderungen des Unterhaltsvorschussgesetzes seit Juli 2017 sind auch neue Statistiken eingeführt worden. In PROSOZ 14plus sind ab Version 2017.5.0 auch erste Plausibilitätsprüfungen integriert, die vor der Ausgabe der UVG-Statistik aufgerufen werden sollten. Die nachfolgenden SQL-Scripts ergänzen die in PROSOZ 14plus eingebauten Prüfungen und helfen, weitere ggf. falsche oder nicht plausible Daten zu finden.

Die Liste der zusätzlichen Prüfungen befindet sich im Aufbau und wird auf Basis praktischer Erfahrungen bei Gelegenheit ergänzt. Bitte haben Sie Verständnis, dass noch nicht alle Scripts für SQL Server und Oracle zur Verfügung stehen.

 

Mehrere Erstbewilligungen - SQL Code für MS SQL Server

select   v.bereich as "Bereich",
         v.aktenzeichen as "Aktenzeichen",
         a.nachname as "Nachname",
         a.vorname as "Vorname",
         convert(char(10),p.geburtsdatum,104) as "Geburtsdatum",
         s.stbez1 as "Statistikkennzeichen",
         count(k.statid) as "Anzahl Kennzeichen"

from     n_vorgang v inner join bere br on v.bereich = br.brs
                     inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                     inner join n_adressen a on b.adresse = a.adressnummer
                     inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                     inner join n_vorg_statkennz k on v.vorgangsnummer = k.vorgangsnummer and k.statid = 610030
                     inner join stat s on k.statid = s.stkz 

where    br.bsg = 2
and      b.beteiligtenart = 7

group by v.bereich,
         v.aktenzeichen,
         a.nachname,
         a.vorname,
         convert(char(10),p.geburtsdatum,104),
         s.stbez1

having   count(k.statid) > 1

union

select   distinct
         v.bereich,
         v.aktenzeichen,
         a.nachname,
         a.vorname,
         convert(char(10),p.geburtsdatum,104),
         s.stbez1,
         count(k.statid)

from     n_vorgang v inner join bere br on v.bereich = br.brs
                     inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                     inner join n_adressen a on b.adresse = a.adressnummer
                     inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                     inner join n_vorg_statkennz k on v.vorgangsnummer = k.vorgangsnummer and k.statid = 610040
                     inner join stat s on k.statid = s.stkz 

where    br.bsg = 2
and      b.beteiligtenart = 7

group by v.bereich,
         v.aktenzeichen,
         a.nachname,
         a.vorname,
         convert(char(10),p.geburtsdatum,104),
         s.stbez1

having   count(k.statid) > 1

order by 1,3,4,5

 

Mehrere Erstbewilligungen - SQL Code für ORACLE

/* 
Titel:            Plausibilitätsprüfung - Mehrere Erstbewilligungen in UVG Arbeitsstatistik

Beschreibung:     Auswertung aller Vorgänge, die mehr als 1 Statistikkennzeichen "Erstbewilligung" zur Arbeitsstatistik enthalten
 
Voraussetzung:    Nutzung der mit PROSOZ 14plus Version 2017.5.0 ausgelieferten Statistikkennzeichen
Quelle:           www.landesarbeitskreis.de
Autor:            Uwe Weidner
Hinweis:          Keine Gewähr auf Richtigkeit!
*/

select   v.bereich as "Bereich",
         v.aktenzeichen as "Aktenzeichen",
         a.nachname as "Nachname",
         a.vorname as "Vorname",
         to_char(p.geburtsdatum,'dd.mm.yyyy') as "Geburtsdatum",
         s.stbez1 as "Statistikkennzeichen",
         count(k.statid) as "Anzahl Kennzeichen"

from     n_vorgang v inner join bere br on v.bereich = br.brs
                     inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                     inner join n_adressen a on b.adresse = a.adressnummer
                     inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                     inner join n_vorg_statkennz k on v.vorgangsnummer = k.vorgangsnummer and k.statid = 610030
                     inner join stat s on k.statid = s.stkz 

where    br.bsg = 2
and      b.beteiligtenart = 7

group by v.bereich,
         v.aktenzeichen,
         a.nachname,
         a.vorname,
         to_char(p.geburtsdatum,'dd.mm.yyyy'),
         s.stbez1

having   count(k.statid) > 1

union

select   distinct
         v.bereich,
         v.aktenzeichen,
         a.nachname,
         a.vorname,
         to_char(p.geburtsdatum,'dd.mm.yyyy'),
         s.stbez1,
         count(k.statid)

from     n_vorgang v inner join bere br on v.bereich = br.brs
                     inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                     inner join n_adressen a on b.adresse = a.adressnummer
                     inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                     inner join n_vorg_statkennz k on v.vorgangsnummer = k.vorgangsnummer and k.statid = 610040
                     inner join stat s on k.statid = s.stkz 

where    br.bsg = 2
and      b.beteiligtenart = 7

group by v.bereich,
         v.aktenzeichen,
         a.nachname,
         a.vorname,
         to_char(p.geburtsdatum,'dd.mm.yyyy'),
         s.stbez1

having   count(k.statid) > 1

order by 1,3,4,5

 

Überlappende Bewilligungszeiträume - SQL Code für MS SQL Server

/* 
Titel:            Plausibilitätsprüfung - Zeitliche Überlappung oder falsche/fehlende Datumsangaben in UVG Arbeitsstatistik

Beschreibung:     Auswertung aller Vorgänge, die mindestens 1 Statistikkennzeichen zur Arbeitsstatistik enthalten
 
                  Geprüft wird im 1. Teil, ob sich die Zeiträume verschiedener Statistikkennzeichen zeitlich überlappen
                  Geprüft wird im 2. Teil, ob sich die Zeiträume gleicher Statistikkennzeichen zeitlich überlappen
                  Geprüft wird im 3. Teil, ob das von- oder bis-Datum für ein Statistikkennzeichen fehlt oder von/bis in der zeitlich falschen Reihenfolge liegen

Voraussetzung:    Nutzung der mit PROSOZ 14plus Version 2017.5.0 ausgelieferten Statistikkennzeichen
Quelle:           www.landesarbeitskreis.de
Autor:            Uwe Weidner
Hinweis:          Keine Gewähr auf Richtigkeit!
*/

select   d.bereich as "Bereich",
         d.aktenzeichen as "Aktenzeichen",
         d.nachname as "Nachname",
         d.vorname as "Vorname",
         d.gebdat as "Geburtsdatum",

         (case when sum(d.hinweis) > 0 then 'Datum falsch/fehlend/überlappend' else '' end) as "Statistikzeiträume"

from     (
         /* Überlappung der Zeiträume verschiedener Statistikkennzeichen */
         select   distinct
                  v.bereich,
                  v.aktenzeichen,
                  a.nachname,
                  a.vorname,
                  convert(char(10),p.geburtsdatum,104)as gebdat,

                  (case when (

                  (k0.von between k1.von and k1.bis or k0.bis between k1.von and k1.bis) or
                  (k0.von between k2.von and k2.bis or k0.bis between k2.von and k2.bis) or
                  (k0.von between k3.von and k3.bis or k0.bis between k3.von and k3.bis) or
                  (k0.von between k4.von and k4.bis or k0.bis between k4.von and k4.bis) or
         
                  (k1.von between k0.von and k0.bis or k1.bis between k0.von and k0.bis) or 
                  (k1.von between k2.von and k2.bis or k1.bis between k2.von and k2.bis) or
                  (k1.von between k3.von and k3.bis or k1.bis between k3.von and k3.bis) or
                  (k1.von between k4.von and k4.bis or k1.bis between k4.von and k4.bis) or

                  (k2.von between k0.von and k0.bis or k2.bis between k0.von and k0.bis) or 
                  (k2.von between k1.von and k1.bis or k2.bis between k1.von and k1.bis) or
                  (k2.von between k3.von and k3.bis or k2.bis between k3.von and k3.bis) or
                  (k2.von between k4.von and k4.bis or k2.bis between k4.von and k4.bis) or

                  (k3.von between k0.von and k0.bis or k3.bis between k0.von and k0.bis) or 
                  (k3.von between k1.von and k1.bis or k3.bis between k1.von and k1.bis) or
                  (k3.von between k2.von and k2.bis or k3.bis between k2.von and k2.bis) or
                  (k3.von between k4.von and k4.bis or k3.bis between k4.von and k4.bis) or

                  (k4.von between k0.von and k0.bis or k4.bis between k0.von and k0.bis) or 
                  (k4.von between k1.von and k1.bis or k4.bis between k1.von and k1.bis) or
                  (k4.von between k2.von and k2.bis or k4.bis between k2.von and k2.bis) or
                  (k4.von between k3.von and k3.bis or k4.bis between k3.von and k3.bis) 
         
                  ) then 1 else 0 end) as hinweis

         from     n_vorgang v inner join bere br on v.bereich = br.brs
                              inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                              inner join n_adressen a on b.adresse = a.adressnummer
                              inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                              left join n_vorg_statkennz k0 on v.vorgangsnummer = k0.vorgangsnummer and k0.statid = 610000
                              left join n_vorg_statkennz k1 on v.vorgangsnummer = k1.vorgangsnummer and k1.statid = 610010
                              left join n_vorg_statkennz k2 on v.vorgangsnummer = k2.vorgangsnummer and k2.statid = 610020
                              left join n_vorg_statkennz k3 on v.vorgangsnummer = k3.vorgangsnummer and k3.statid = 610030
                              left join n_vorg_statkennz k4 on v.vorgangsnummer = k4.vorgangsnummer and k4.statid = 610040

         where    br.bsg = 2
         and      b.beteiligtenart = 7
         and      v.vorgangsnummer in (select   vorgangsnummer
                                       from     n_vorg_statkennz 
                                       where    statid in (610000,610010,610020,610030,610040) 
                                       group by vorgangsnummer
                                       having   count(vorgangsnummer) > 1)

         union

         /* Überlappung der Zeiträume gleicher Statistikkennzeichen */
         select   distinct
                  v.bereich,
                  v.aktenzeichen,
                  a.nachname,
                  a.vorname,
                  convert(char(10),p.geburtsdatum,104),

                  (case when (k1.von between k2.von and k2.bis
                           or k1.bis between k2.von and k2.bis
                           or k2.von between k1.von and k1.bis 
                           or k2.bis between k1.von and k1.bis) 
                   then 1 else 0 end) 

         from     n_vorgang v inner join bere br on v.bereich = br.brs
                              inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                              inner join n_adressen a on b.adresse = a.adressnummer
                              inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                              inner join n_vorg_statkennz k1 on v.vorgangsnummer = k1.vorgangsnummer and k1.statid in (610000,610010,610020,610030,610040) 
                              inner join n_vorg_statkennz k2 on v.vorgangsnummer = k2.vorgangsnummer and k2.statid = k1.statid and k2.lfdnr <> k1.lfdnr

         where    br.bsg = 2
         and      b.beteiligtenart = 7
         and      v.vorgangsnummer in (select   vorgangsnummer
                                       from     n_vorg_statkennz 
                                       where    statid in (610000,610010,610020,610030,610040) 
                                       group by vorgangsnummer
                                       having   count(vorgangsnummer) > 1)

         union

         /* von-bis-Datum fehlend oder in falscher Reihenfolge */
         select   distinct
                  v.bereich,
                  v.aktenzeichen,
                  a.nachname,
                  a.vorname,
                  convert(char(10),p.geburtsdatum,104) as gebdat,

                  (case when (k.von is null or k.von = '') then 1
                        when (k.bis is null or k.bis = '') then 1
                        when k.bis < k.von then 1
                        else 0 end)

         from     n_vorgang v inner join bere br on v.bereich = br.brs
                              inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                              inner join n_adressen a on b.adresse = a.adressnummer
                              inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                              inner join n_vorg_statkennz k on v.vorgangsnummer = k.vorgangsnummer 
                                         and k.statid in (610000,610010,610020,610030,610040) 

         where    br.bsg = 2
         and      b.beteiligtenart = 7

         ) as d

group by d.bereich,
         d.aktenzeichen ,
         d.nachname,
         d.vorname,
         d.gebdat

having sum(d.hinweis) > 0

order by 1,3,4,5

 

Überlappende Bewilligungszeiträume - SQL Code für ORACLE

/* 
Titel:            Plausibilitätsprüfung - Zeitliche Überlappung oder falsche/fehlende Datumsangaben in UVG Arbeitsstatistik

Beschreibung:     Auswertung aller Vorgänge, die mindestens 1 Statistikkennzeichen zur Arbeitsstatistik enthalten
 
                  Geprüft wird im 1. Teil, ob sich die Zeiträume verschiedener Statistikkennzeichen zeitlich überlappen
                  Geprüft wird im 2. Teil, ob sich die Zeiträume gleicher Statistikkennzeichen zeitlich überlappen
                  Geprüft wird im 3. Teil, ob das von- oder bis-Datum für ein Statistikkennzeichen fehlt oder von/bis in der zeitlich falschen Reihenfolge liegen

Voraussetzung:    Nutzung der mit PROSOZ 14plus Version 2017.5.0 ausgelieferten Statistikkennzeichen
Quelle:           www.landesarbeitskreis.de
Autor:            Uwe Weidner
Hinweis:          Keine Gewähr auf Richtigkeit!
*/

select   d.bereich as "Bereich",
         d.aktenzeichen as "Aktenzeichen",
         d.nachname as "Nachname",
         d.vorname as "Vorname",
         d.gebdat as "Geburtsdatum",

         (case when sum(d.hinweis) > 0 then 'Datum falsch/fehlend/überlappend' else '' end) as "Statistikzeiträume"

from     (
         /* Überlappung der Zeiträume verschiedener Statistikkennzeichen */
         select   distinct
                  v.bereich,
                  v.aktenzeichen,
                  a.nachname,
                  a.vorname,
                  p.geburtsdatum as gebdat,

                  (case when (

                  (k0.von between k1.von and k1.bis or k0.bis between k1.von and k1.bis) or
                  (k0.von between k2.von and k2.bis or k0.bis between k2.von and k2.bis) or
                  (k0.von between k3.von and k3.bis or k0.bis between k3.von and k3.bis) or
                  (k0.von between k4.von and k4.bis or k0.bis between k4.von and k4.bis) or
         
                  (k1.von between k0.von and k0.bis or k1.bis between k0.von and k0.bis) or 
                  (k1.von between k2.von and k2.bis or k1.bis between k2.von and k2.bis) or
                  (k1.von between k3.von and k3.bis or k1.bis between k3.von and k3.bis) or
                  (k1.von between k4.von and k4.bis or k1.bis between k4.von and k4.bis) or

                  (k2.von between k0.von and k0.bis or k2.bis between k0.von and k0.bis) or 
                  (k2.von between k1.von and k1.bis or k2.bis between k1.von and k1.bis) or
                  (k2.von between k3.von and k3.bis or k2.bis between k3.von and k3.bis) or
                  (k2.von between k4.von and k4.bis or k2.bis between k4.von and k4.bis) or

                  (k3.von between k0.von and k0.bis or k3.bis between k0.von and k0.bis) or 
                  (k3.von between k1.von and k1.bis or k3.bis between k1.von and k1.bis) or
                  (k3.von between k2.von and k2.bis or k3.bis between k2.von and k2.bis) or
                  (k3.von between k4.von and k4.bis or k3.bis between k4.von and k4.bis) or

                  (k4.von between k0.von and k0.bis or k4.bis between k0.von and k0.bis) or 
                  (k4.von between k1.von and k1.bis or k4.bis between k1.von and k1.bis) or
                  (k4.von between k2.von and k2.bis or k4.bis between k2.von and k2.bis) or
                  (k4.von between k3.von and k3.bis or k4.bis between k3.von and k3.bis) 
         
                  ) then 1 else 0 end) as hinweis

         from     n_vorgang v inner join bere br on v.bereich = br.brs
                              inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                              inner join n_adressen a on b.adresse = a.adressnummer
                              inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                              left join n_vorg_statkennz k0 on v.vorgangsnummer = k0.vorgangsnummer and k0.statid = 610000
                              left join n_vorg_statkennz k1 on v.vorgangsnummer = k1.vorgangsnummer and k1.statid = 610010
                              left join n_vorg_statkennz k2 on v.vorgangsnummer = k2.vorgangsnummer and k2.statid = 610020
                              left join n_vorg_statkennz k3 on v.vorgangsnummer = k3.vorgangsnummer and k3.statid = 610030
                              left join n_vorg_statkennz k4 on v.vorgangsnummer = k4.vorgangsnummer and k4.statid = 610040

         where    br.bsg = 2
         and      b.beteiligtenart = 7
         and      v.vorgangsnummer in (select   vorgangsnummer
                                       from     n_vorg_statkennz 
                                       where    statid in (610000,610010,610020,610030,610040) 
                                       group by vorgangsnummer
                                       having   count(vorgangsnummer) > 1)

         union

         /* Überlappung der Zeiträume gleicher Statistikkennzeichen */
         select   distinct
                  v.bereich,
                  v.aktenzeichen,
                  a.nachname,
                  a.vorname,
                  p.geburtsdatum ,

                  (case when (k1.von between k2.von and k2.bis
                           or k1.bis between k2.von and k2.bis
                           or k2.von between k1.von and k1.bis 
                           or k2.bis between k1.von and k1.bis) 
                   then 1 else 0 end) 

         from     n_vorgang v inner join bere br on v.bereich = br.brs
                              inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                              inner join n_adressen a on b.adresse = a.adressnummer
                              inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                              inner join n_vorg_statkennz k1 on v.vorgangsnummer = k1.vorgangsnummer and k1.statid in (610000,610010,610020,610030,610040) 
                              inner join n_vorg_statkennz k2 on v.vorgangsnummer = k2.vorgangsnummer and k2.statid = k1.statid and k2.lfdnr <> k1.lfdnr

         where    br.bsg = 2
         and      b.beteiligtenart = 7
         and      v.vorgangsnummer in (select   vorgangsnummer
                                       from     n_vorg_statkennz 
                                       where    statid in (610000,610010,610020,610030,610040) 
                                       group by vorgangsnummer
                                       having   count(vorgangsnummer) > 1)

         union

         /* von-bis-Datum fehlend oder in falscher Reihenfolge */
         select   distinct
                  v.bereich,
                  v.aktenzeichen,
                  a.nachname,
                  a.vorname,
                   p.geburtsdatum as gebdat,

                  (case when (k.von is null or k.von = '') then 1
                        when (k.bis is null or k.bis = '') then 1
                        when k.bis < k.von then 1
                        else 0 end)

         from     n_vorgang v inner join bere br on v.bereich = br.brs
                              inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
                              inner join n_adressen a on b.adresse = a.adressnummer
                              inner join n_personendaten p on b.adresse = p.zuordnungsnummer

                              inner join n_vorg_statkennz k on v.vorgangsnummer = k.vorgangsnummer 
                                         and k.statid in (610000,610010,610020,610030,610040) 

         where    br.bsg = 2
         and      b.beteiligtenart = 7

         )  d

group by d.bereich,
         d.aktenzeichen ,
         d.nachname,
         d.vorname,
         d.gebdat

having sum(d.hinweis) > 0

order by 1,3,4,5

 

Bitte beachten Sie vor dem Download von MIS- oder SQL-Auswertungen die Grundsätze für die Nutzung von Auswertungen.