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