Hallo,
ich bin durch einen Tipp auf das
DP-Forum gestossen und erhoffe mir ein paar Lösungsansätze für folgende Problemstellung:
Vorgeschichte
Ich nutze
eclipse BIRT zur Auswertung einer
MySQL-
DB. Hierzu lassen sich in BIRT sog. Data Sets erstellen, die einzelne
SQL-SELECT-Statements kapseln.
Ziel
Ziel soll es sein, innerhalb eines einzelnen SLEECT-Statements mehrere SELECT-Statements zu nutzen und zwischen den Ergebnistabellen der einzelnen SELECT-Statements Berechnungen anzustellen (*,+,-,/).
DB-Struktur
Schema: element
SQL-Code:
id | datum | intervall | wert | typ_id | bereich_id
1 | 2009-01-01 | 8:00 | 3.0 | 2 | 2
2 | 2009-01-01 | 8:30 | 2.0 | 3 | 1
...
Textuelle Beschreibung
(Alle Werte vom Typ 3 und Bereich 2,3,4) + (Alle Werte vom Typ 2 und Bereich 2,3,4) * (Alle Werte vom Typ 14 und Bereich 2,3,4) in Abhängigkeit des Datums und des Intervalls.
Pseudo-SQL
(SELECT e.wert FROM element e WHERE typ_id = 3 AND bereich_id IN (2,3,4)) + (SELECT e.wert FROM element e WHERE typ_id = 2 AND bereich_id IN (2,3,4)) * (SELECT e.wert FROM element e WHERE typ_id = 14 AND bereich_id IN (2,3,4))
Wobei hier eine Bedingung wie bei einem JOIN a la
abfrage1.datum=abfrage2.datum AND abfrage2.datum=abfrage3.datum AND abfrage1.intervall=abfrage2.intervall AND abfrage2.intervall=abfrage3.intervall
mit eingebaut werden müsste. Dies geht meines Erachtens jedoch nicht, oder?
Frage
Wie kann ich eine solche Abfrage
a) überhaupt mit
SQL realisieren?
b) in einem einzelnen
SQL-SELECT-Statement realisieren?
Auch eine Stored Procedure wäre möglich, da BIRT die Möglichkeit bietet, eben solche anzusprechen.
Ich danke Euch schon im Voraus für die Hilfe, wenn es noch Fragen gibt: Immer her damit!