Durchschnittliche Dauer von Vorgängen

Mit diesem SQL-Script erstellen Sie eine Übersicht, wie lange Vorgänge durchschnittlich dauern.

Berücksichtigt wird die Dauer zwischen Vorgangsbeginn- und Ende-Datum. Das "Ende-Zahlungen"-Datum bleibt unberücksichtigt.

Die Übersicht wird nach der Hilfeart zusammengefasst, sofern sie in der Hauptmaske der Vorgänge als "Grund" ausgewählt wurde. Außerdem wird die kürzeste und die längste Dauer sowie die Anzahl der Vorgänge ausgegeben, aus denen der Durchschnitt ermittelt wurde.

 

SQL-Code für MS SQL SERVER

select   s.sgnr as "Sachgebietsnummer",
         s.sgbez as "Sachgebiet", 
         isnull(ha.bez,'(Keine Angabe)') as "Hilfeart (Grund)",
         round(avg(datediff(dd,v.beginnvorgang,v.endevorgang)+1),0) as "Durchschnittl. Dauer",
         round(min(datediff(dd,v.beginnvorgang,v.endevorgang)+1),0) as "Kürzeste Dauer",
         round(max(datediff(dd,v.beginnvorgang,v.endevorgang)+1),0) as "Längste Dauer",
         count(distinct v.vorgangsnummer) as "aus Anzahl Vorgänge"
         
from     n_vorgang v inner join bere br on v.bereich = br.brs
         inner join sach s on br.bsg = s.sgnr
         left join hilfeart ha on v.hilfeart_fk = ha.lnr
         
where    v.beginnvorgang is not null
and      v.endevorgang is not null
 
group by s.sgnr,
         s.sgbez,
         isnull(ha.bez,'(Keine Angabe)')
          
order by 1,3

 

SQL-Code für ORACLE

select   s.sgnr as "Sachgebietsnummer",
         s.sgbez as "Sachgebiet",
         nvl(ha.bez,'(Keine Angabe)') as "Hilfeart (Grund)", 
         round(avg((months_between(v.endevorgang,v.beginnvorgang) * 30.42) +1),0) as "Durchschnittl. Dauer",
         round(min((months_between(v.endevorgang,v.beginnvorgang) * 30.42) +1),0) as "Kürzeste Dauer",
         round(max((months_between(v.endevorgang,v.beginnvorgang) * 30.42) +1),0) as "Längste Dauer",
         count(distinct v.vorgangsnummer) as "aus Anzahl Vorgänge"

from     n_vorgang v inner join bere br on v.bereich = br.brs
         inner join sach s on br.bsg = s.sgnr                     
         left join hilfeart ha on v.hilfeart_fk = ha.lnr
         
where    v.beginnvorgang is not null
and      v.endevorgang is not null

group by s.sgnr,
         s.sgbez,
         nvl(ha.bez,'(Keine Angabe)')

order by 1,3