🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Pivot-Tabelle simulieren - Alternative

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Freischreiber
* LO-Experte *
Beiträge: 829
Registriert: Fr 28. Mär 2014, 10:41

Pivot-Tabelle simulieren - Alternative

Beitrag von Freischreiber » Di 30. Jan 2024, 16:41

Hallo,

bisher nutze ich für eine spaltenweise Darstellung von Buchungen nach Buchungskonten eine solche Abfrage:

Code: Alles auswählen

SELECT "t-auftrag"."ID", "t-buchungen"."Datum", "t-buchungen"."Bemerkung", "a"."Betrag +/-" "Ein0% USt. Ausland", "b"."Betrag +/-" "Ein0% USt. Eigene"
FROM "t-buchungen" 
LEFT JOIN "t-buchungen" AS "a" ON ( "t-buchungen"."ID" = "a"."ID" AND "a"."BuchungskontoID" = 0 ) 
LEFT JOIN "t-buchungen" AS "b" ON ( "t-buchungen"."ID" = "b"."ID" AND "b"."BuchungskontoID" = 1 ) 
LEFT JOIN "t-auftrag" ON ( "t-auftrag"."ID" = "t-buchungen"."AuftragID" ) ORDER BY "t-buchungen"."Datum" 
Das ist nur ein Ausschnitt, es folgen noch mehrere Spalten und dafür mehrere Left Joins, was die Sache langsam macht.

Ich bin auf der Suche nach einer Alternative hierauf gestoßen:
https://stackoverflow.com/questions/142 ... sing-joins

Schaffe aber nicht, das auf HSQL in Base zu übertragen. Sowas stelle ich mir vor, es läuft aber nicht:

Code: Alles auswählen

SELECT "t-auftrag"."ID", "t-buchungen"."Datum", "t-buchungen"."Bemerkung"
MAX(CASE WHEN t-buchungen.BuchungskontoID=0 then t.buchungen.Datum END) AS "Ein0% USt. Ausland",
MAX(CASE WHEN t-buchungen.BuchungskontoID=1 then t.buchungen.Datum END) AS "Ein0% USt. Eigene"
FROM "t-buchungen" AS "Buchung"
LEFT JOIN "t-auftrag" 
ON ( "t-auftrag"."ID" = "t-buchungen"."AuftragID" ) 
group by "t-auftrag"."ID", "t-buchungen"."Datum"
Wobei ich keine Dokumentation darüber finde, ob es in HSQL dieses "MAX" überhaupt gibt bzw. was es bewirkt.

Kann jemand helfen?

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten