gczychi
Neuer Benutzer
- Beiträge
- 2
Ist es möglich das Ergebnis einer Abfrage als Column-Namen für das Speichern von aggregierten Werten in eine zweite Tabelle zu verwenden? (SQL-92)
Hallo,
ich habe zwei Tabellen, wie folgt:
Tabelle 1 "Buchung":
Es geht darum, alle Beträge der einzelnen, vorhandenen Konten in "Buchung" zu addieren, z.B. so:
Ich erhalte folgendes:
oder, wenn es den Datensatz bereits gibt, in denen die Werte geschrieben werden:
Die Frage ist: Wie kann ich das mit einem Query machen? Und zwar so, dass ich nicht alle möglichen "Konto"s auflisten muss, sondern nur die jeweils vorhandenen Kontobeträge von "Buchung" in "Erfolg" schreibe. Also nicht so:
Zusätzliche Infos: Es gibt insgesamt etwa 70 mögliche Werte für Konto/SumNNN, von denen jedoch bei jeder Abfrage nur jeweils etwa 20 in "Buchung" vorhanden sind. Bei jedem Abfragezeitpunkt ändern sich die Kontos und auch deren Anzahl und natürlich die Anzahl und Werte der einzelnen Beträge. Ich muss diese Werte beliebig oft für beliebig viele Zeitraume in "Erfolg" speichern.
Ach ja, mein SQL ist von FileMaker und ist: "SQL-92 entry- level conformance, with some SQL-92 intermediate features". So etwas wie PIVOT gibt es leider nicht.
Vielen Dank für jeden Hinweis!
Gary
Hallo,
ich habe zwei Tabellen, wie folgt:
Tabelle 1 "Buchung":
id Konto Betrag
1 555 2.90
2 123 100
3 900 -25.25
4 555 140
5 123 33
6 123 10000
Tabelle 2 "Erfolg":1 555 2.90
2 123 100
3 900 -25.25
4 555 140
5 123 33
6 123 10000
id Sum100 … Sum123 … Sum380 … Sum555 … Sum900 … Sum999 … Zeitraum
Es geht darum, alle Beträge der einzelnen, vorhandenen Konten in "Buchung" zu addieren, z.B. so:
Code:
SELECT Konto, SUM(Betrag) FROM Buchung GROUP BY Konto
Konto,SUM(Betrag)
123,10133
555,142.9
900,-25.25
Diese aggregierten Werte müssen jetzt in eine Zeile (!) von "Erfolg" geschrieben werden, z.B. so:123,10133
555,142.9
900,-25.25
Code:
INSERT INTO Erfolg (Sum123, Sum555, Sum900) Values (10133, 142.9, -25.25)
Code:
INSERT INTO Erfolg (Sum123, Sum555, Sum900) Values (10133, 142.9, -25.25) WHERE Zeitraum = 2015.55
Code:
SELECT
SUM ( CASE Konto WHEN 100 THEN Betrag END) AS Sum100,
…
SUM ( CASE Konto WHEN 123 THEN Betrag END) AS Sum123,
…
SUM ( CASE Konto WHEN 380 THEN Betrag END) AS Sum380
…
FROM Buchung
Zusätzliche Infos: Es gibt insgesamt etwa 70 mögliche Werte für Konto/SumNNN, von denen jedoch bei jeder Abfrage nur jeweils etwa 20 in "Buchung" vorhanden sind. Bei jedem Abfragezeitpunkt ändern sich die Kontos und auch deren Anzahl und natürlich die Anzahl und Werte der einzelnen Beträge. Ich muss diese Werte beliebig oft für beliebig viele Zeitraume in "Erfolg" speichern.
Ach ja, mein SQL ist von FileMaker und ist: "SQL-92 entry- level conformance, with some SQL-92 intermediate features". So etwas wie PIVOT gibt es leider nicht.
Vielen Dank für jeden Hinweis!
Gary