Hallo,
ich habe hier eine SQLite DB in der es u.a. Buchungen von Einnahmen und Ausgaben gibt. Ob ein Betrag + oder - gerechnet wird ist erst ersichtlich durch die jeweilige Kategorie zu dem Konto das in der Buchung angesprochen wird. Nun möchte ich gerne in einer Query alle "Ein", alle "Aus" und den Saldo berechnen. Das funktioniert in der Form unten soweit, jedoch frage ich mich, ob das nicht auch ohne vieler SubSelects geht, vor allem die Berechnung der Differenz stört mich da ich die Werte zuerst eigentlich schon habe aber dann nochmals hole, ich glaub das geht besser, oder irre ich? Danke jedenfalls.
Ergibt derzeit als Ausgabe:
Wenn ich es so versuche ...
... gibts leider nur einen Fehler no such column: Ein
EDIT: Hab nochmals nachgelesen, scheinbar kann man solche Aliase nicht wiederverwenden.
ich habe hier eine SQLite DB in der es u.a. Buchungen von Einnahmen und Ausgaben gibt. Ob ein Betrag + oder - gerechnet wird ist erst ersichtlich durch die jeweilige Kategorie zu dem Konto das in der Buchung angesprochen wird. Nun möchte ich gerne in einer Query alle "Ein", alle "Aus" und den Saldo berechnen. Das funktioniert in der Form unten soweit, jedoch frage ich mich, ob das nicht auch ohne vieler SubSelects geht, vor allem die Berechnung der Differenz stört mich da ich die Werte zuerst eigentlich schon habe aber dann nochmals hole, ich glaub das geht besser, oder irre ich? Danke jedenfalls.
Code:
SELECT ( SELECT SUM(b.Value) FROM Bookings b INNER JOIN Categories c ON b.Category = c.GUID WHERE c.Flags = 1 ) AS Ein, ( SELECT SUM(b.Value) FROM Bookings b INNER JOIN Categories c ON b.Category = c.GUID WHERE c.Flags = 0 ) AS Aus, ( SELECT SUM(b.Value) FROM Bookings b INNER JOIN Categories c ON b.Category = c.GUID WHERE c.Flags = 1 ) - ( SELECT SUM(b.Value) FROM Bookings b INNER JOIN Categories c ON b.Category = c.GUID WHERE c.Flags = 0 ) AS Saldo
Code:
Ein Aus Saldo 697 560 137
Wenn ich es so versuche ...
Code:
SELECT ( SELECT SUM(b.Value) FROM Bookings b INNER JOIN Categories c ON b.Category = c.GUID WHERE c.Flags = 1 ) AS Ein, ( SELECT SUM(b.Value) FROM Bookings b INNER JOIN Categories c ON b.Category = c.GUID WHERE c.Flags = 0 ) AS Aus, Ein - Aus AS Saldo
EDIT: Hab nochmals nachgelesen, scheinbar kann man solche Aliase nicht wiederverwenden.
Comment