🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
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: 866
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

:idea: Achte auf die dritte Ziffer: Libre Office 25.2.0.3 = Ärger ist vorprogrammiert.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten