Einzelnen Beitrag anzeigen

spaniac

Registriert seit: 28. Jan 2010
20 Beiträge
 
#1

Berechnung zwischen mehreren SQL-Statements

  Alt 29. Jan 2010, 14:30
Datenbank: MySQL • Version: 5.x • Zugriff über: JDBC Connector /
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!
  Mit Zitat antworten Zitat