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