Witam,
próbuję napisać funkcję, która łączy 3 tabele.
Pierwsza tabela zawiera id projektu i nazwę
Druga id projketu oraz koszt,
Trzecia id projektu oraz przychód.
W tabeli przychodów i kosztów może być kilka rekordów dla jednego projektu.
W jaki sposób mogę w prosty sposób napisać podsumowanie przychodów i kosztów dla projektu
Jeżeli próbuję zrobić join 3 tabel to funkcja agregująca zlicza mi kilkukrotnie wartość (tyle ile jest rekordów w 3 tabeli).
W sumie rozwiązałem to w ten sposób:
select projekt.id, first(przychody.wartosc), sum(koszty.wartosc)
from projekty
left join porzychody on projekty.id = przychody.id
left join koszty on projekty.id = koszty.id
group by projekty.id
W tym przypadku jest OK, ale wydaje mi się, że można to napisać lepiej.