Jens Hopp: Frage zu SQL-Formulierung

Beitrag lesen

Hallo.

Ich habe eine Frage zu SQL.

Für eine Umsatztabelle brauche ich folgende Darstellung, in der die Stückzahlen, Umsatz und Erlöse für verschiedene Produkte in verschiedenen Monaten nacheinander dargestellt werden.

+-----------+--------------------------------------------------------------------------------+-- ... --+--------- ...
|           | 2003                                                                                     | 2004
+-----------+--------------------------+--------------------------+--------------------------+-- ... --+-------- ...
|           | Januar                   | Februar                  | März                     |         | Januar
+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-- ... --+--------+ ...
|           | Stück  | Umsatz | Erlös  | Stück  | Umsatz | Erlös  | Stück  | Umsatz | Erlös  |         | Stück  |
+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-- ... --+--------+ ...
| Produkt A | 243    | 672 E  | 162 E  | 354    | 723 E  | 189 E  | 245    | 678 E  | 145 E  |         | 352    |
+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-- ... --+--------+ ...
| Produkt B | 547    | 243 E  | 132 E  | 765    | 254 E  | 140 E  | 645    | 356 E  | 123 E  |         | 567    |
+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-- ... --+--------+ ...
| Produkt C | 243    | 672 E  | 162 E  | 354    | 723 E  | 189 E  | 245    | 678 E  | 145 E  |         | 352    |
+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-- ... --+--------+ ...
...
...
...

Es gibt folgende Tabellen:

-"Jahr" mit Spalte "Jahreszahl"
-"Monat" mit Spalte "Monat" und Key zum "Jahr"
-"Produkt" mit Spalte "Bezeichnung"
-"Monatsumsatz" mit Spalte "Stückzahl", "Erlös", "Umsatz" und Keys zu "Produkt" -und zu "Monat"

Letztlich handelt es sich also für jeden Monat um eine eigene Abfrage über die Tabelle "Monatsumsatz" in der Form

select * from Monatsumsatz where KeyMonat=[Monat]

Die Ergebnisse dieser Abfragen müssten dann nacheinander dargestellt werden - eine Frage des Templates.

Ich müsste also mehrere Abfragen aneinanderhängen, für Januar 2003, für Februar 2003, für März 2003 u.s.w..

Wenn ich aber das nun noch auswählbar machen will:

Januar 2003 bis Juni 2003
oder
Januar 2004 bis März 2004
oder so

bekomme ich ein Problem mit der Darstellung und der Anzahl der notwendigen Abfragen - weil das variabel sein muß.

Muß ich mit dem Problem leben oder gibt es irgendeine tolle SQL-Lösung (Subselects, Joins, was-weiß-ich), mit der solche verschachtelten Anfragen standardmäßig gelöst werden?

Oder ist diese Problemlage die, weshalb man Objektorientierte Datenbanken entwickelt? (Womit ich das endlich verstehen würde... ;-)

Danke für ein paar Tips, Gedankenanregungen - vielleicht nur ein paar Keywords zum weitergoogeln.

viele Grüße
Jens-H. Hopp