SQLite scalanie tabel

0

Mam tabele w SQLite:
Budzet(IDBudzet, IDRozdzial, IDParagraf, … ) klucz gł. IDBudzet
Rozdzial(IDRozdzial, IDDzial, … ) klucz gł. IDRozdzial
Dzial(IDDzial, …) klucz gł. IDDzial
Paragraf(IDParagraf, … ) klucz gł. IDParagraf
ZminaBudzet(IDZmianaBudzet, IDBudzet, KwotaZmiana, … ) klucz gł. IDZmianaBudzet
Rezerwacja(IDRezerwacja, IDBudzet, KwotaRezerwacja, … ) klucz gł. IDRezerwacja

Chcę uzyskać zestawienie w postaci tabeli:

Kolunmy tabeli:
Dział = IDDzial
Rozdział = IDRozdzial
Paragraf = IDParagraf
Plan=TOTAL(ZmianaBudzet.KwotaZmiana)
Rezerwacja=TOTAL(Rezerwacja.KwotaRezerwacja)
Pozostaje = Plan - Rezerwacja

Utworzone zapytanie nie daje prawidłowych wyników.
Dla Paragrafu w określonym dziale i rozdziale wartości Total zwiększone są o wielokrotność dokonanych dla nich rezerwacji.

SELECT Rozdzial.IDDzial AS Dział,
Budzet.IDRozdzial AS Rozdział,
Budzet.IDParagraf AS Paragraf,
TOTAL(ZmianaBudzet.KwotaZmiana) AS PlanKwota,
TOTAL(Rezerwacja.KwotaRezerwa) AS Rezerwa,
TOTAL(ZmianaBudzet.KwotaZmiana) - TOTAL(Rezerwacja.KwotaRezerwa) AS Pozostaje
FROM Budzet
INNER JOIN
Rozdział ON Rozdział.IDRozdzial = Budzet.IDRozdzial
INNER JOIN
Dział ON Dział.IDDzial = Rozdział.IDDzial
INNER JOIN
Paragraf ON Paragraf.IDParagraf = Budzet.IDParagraf
LEFT JOIN
ZmianaBudzet ON ZmianaBudzet.IDBudzet = Budzet.IDBudzet
LEFT JOIN
Rezerwacja ON Rezerwacja.IDBudzet = Budzet.IDBudzet
GROUP BY Rozdzial.IDDzial,
Budzet.IDRozdzial,
Budzet.IDParagraf

Proszę o pomoc.

1
SELECT 
    Rozdzial.IDDzial AS Dział,
    Budzet.IDRozdzial AS Rozdział,
    Budzet.IDParagraf AS Paragraf,
    TOTAL(ZB.KwotaZmiana) AS PlanKwota,
    TOTAL(b.KwotaRezerwa) AS Rezerwa,
    TOTAL(ZB.KwotaZmiana) - TOTAL(b.KwotaRezerwa) AS Pozostaje
FROM 
    Budzet
    INNER JOIN Rozdział ON Rozdział.IDRozdzial = Budzet.IDRozdzial
    INNER JOIN Dział ON Dział.IDDzial = Rozdział.IDDzial
    INNER JOIN Paragraf ON Paragraf.IDParagraf = Budzet.IDParagraf
    LEFT JOIN (select 
				IDBudzet
				, TOTAL(ZmianaBudzet) as KwotaZmiana 
			FROM 
				ZmianaBudzet
			group by 
				IDBudzet) as ZB ON ZB.IDBudzet = Budzet.IDBudzet
    LEFT JOIN (SELECT
				IDBudzet
				,TOTAL(KwotaRezerwa) as KwotaRezerwa
			 FROM
				Rezerwacja 
			GROUP BY
				IDBudzet) AS b	ON b.IDBudzet = Budzet.IDBudzet
GROUP BY 
    Rozdzial.IDDzial,
    Budzet.IDRozdzial,
    Budzet.IDParagraf
0

Po małych dostosowaniach zadziałało poprawnie.
Wielkie dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1