Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BEGIN
- RETURN QUERY
- SELECT ff1.id, ff1.numer, ff1.id_nadzadania, ff1.nazwa, ff1.rozpoczecie, ff1.faktyczne_zakonczenie, ff1.czas_trwania, ff1. zakonczenie, ff1.zalozony_koszt,
- ff1.faktyczny_koszt, ff1.roznica, ff1.praca, ff1.numery_poprzednikow, ff1.postep, ff2.pracownicy
- FROM(
- SELECT zzz1.id, zzz1.id_nadzadania, zzz1.numer, zzz1.nazwa, zzz1.praca, zzz1.zalozony_koszt, zzz1.rozpoczecie,
- zzz1.faktyczne_zakonczenie, zzz1.numery_poprzednikow, zzz1.faktyczny_koszt, zzz1.roznica, zzz1.zakonczenie, zzz1.czas_trwania, zzz2.postep, zzz1.id_projektu
- FROM(
- SELECT z.id, z.numer, z.id_nadzadania, z.nazwa, z.praca, z.zalozony_koszt, z.rozpoczecie, z.id_projektu ,
- z.faktyczne_zakonczenie, z.faktyczny_koszt, z.roznica, z.zakonczenie, z.czas_trwania, string_agg(CAST(zp.numer_poprzednika AS VARCHAR) || zp.typ, ', ') numery_poprzednikow
- FROM zadania z
- LEFT JOIN zadania_poprzedniki zp
- ON z.id = zp.id_zadania GROUP BY z.id
- ) as zzz1
- LEFT JOIN (
- SELECT zz.id, p.id_zadania, p.postep, p.data_sprawdzenia
- FROM zadania zz
- LEFT JOIN (
- select distinct p1.id_zadania, postep_top.postep, postep_top.data_sprawdzenia from postep p1
- join lateral (
- select * from postep p2
- where p1.id_zadania = p2.id_zadania
- order by p2.data_sprawdzenia asc
- limit 1
- ) postep_top on true
- order by p1.id_zadania
- ) p
- ON zz.id = p.id_zadania --order by p.data_sprawdzenia desc limit 1
- ) as zzz2
- ON zzz1.id = zzz2.id GROUP BY zzz1.id, zzz1.numer, zzz1.nazwa, zzz1.praca, zzz1.zalozony_koszt, zzz1.rozpoczecie,
- zzz1.faktyczne_zakonczenie, zzz1.numery_poprzednikow, zzz1.faktyczny_koszt, zzz1.roznica , zzz1.zakonczenie, zzz1.czas_trwania, zzz2.postep, zzz1.id_nadzadania, zzz1.id_projektu ORDER BY zzz1.id
- ) ff1
- LEFT JOIN (
- SELECT zp.id_zadania, string_agg(p.imie, ', ') pracownicy
- FROM zadania_pracownicy zp
- LEFT JOIN pracownicy p ON zp.id_pracownika = p.id GROUP BY zp.id_zadania
- ) ff2 ON ff1.id = ff2.id_zadania WHERE ff1.id_projektu = $1 ORDER BY ff1.numer;
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement