Hallo Zusammen,
ich habe drei Tabellen für ein Reservierungssystem von Sitzplätzen,
die Tagesweise reseviert werden können. Sie sind im wesentlichen wie
folgt aufgebaut:
Tabelle "User":
Namens_ID (int) | Name (chr20)
----------------|-------------
1 | Anne
2 | Beate
3 | Chantal
... | ...
Tabelle "Sitzplaetze":
Sitz_ID (int) | Sitzplatz (chr20)
---------------|-------------
1 | Schöne Aussicht
2 | Späte Einsicht
3 | Gute Absicht
4 | Weite Fernsicht
5 | Bitte um Nachsicht
... | ...
Tabelle "Reservierungen":
Reserv_ID (int) | Datum (date) | Sitz_ID (int) | Namens_ID (int)
----------------------------------------------------------------
0 | 2010-03-20 | 1 | 1
1 | 2010-03-20 | 2 | 2
2 | 2010-03-20 | 3 | 3
3 | 2010-03-21 | 1 | 1
4 | 2010-03-22 | 1 | 1
5 | 2010-03-23 | 1 | 1
... | ... | ... | ...
Nun möchte ich mit SELECT (oder sonstwie), eine Tabelle mit
flexibler Breite (!!!) wie folgt erstellen:
Wunschtabelle:
Datum | Sitz Nr.1 | Sitz Nr.2 | Stitz Nr.3 | ... | Sitz Nr.(Max)
------------------------------------------------------------------------
2010-03-20 | Anne | Beate | Chantal | ... | ...
2010-03-21 | Anne | ... | ... | ... | ...
2010-03-22 | Anne | ... | ... | ... | ...
2010-03-23 | Anne | ... | ... | ... | ...
Anstatt "user.name" (also "Anne", "Beate", "Chantal") würde mir
natürlich "Reservierungen.Reserv_ID" in der obigen Ausgabe als
Zischenergebnis erstmal reichen - der Rest ergibt sich dann.
Die Select Ausgabe, mit die die Wunschtabelle generiert wird, soll also
so flexibel sein, dass die Spaltenanzahl der Anzahl von Sitzplaetze~.Sitz_ID
entspricht (ich möchte nicht den Programmcode ändern wenn sich die Anzahl
der Sitzplätze ändert). Also
SELECT COUNT(Sitz_ID) FROM Sitzplaetze;
-- für Spaltenanzahl
und
SELECT CONCATE("Sitz Nr.", Sitz_ID) FROM Sitzplaetze;
-- für Spaltennamen
Das Hauptproblem scheint zu sein, dass man bei
SELECT select_expr FROM table_references .....
für select_expr immer nur feste Werte fuer die Spaltenausgaben
angeben kann. Oder liege ich da Falsch???
Ich habe einiges probiert: z.B. eine Variable mit den gewünschten
Werten für "select_expr" zu definieren und sie in einer SELECT
Anweisung zu benutzen. Ging nicht! Auch lässt sich in einer SELECT
Anweisung das "select_expr" scheinbar nicht durch weitere SELECT
Anweisungen generieren.
Ich wäre sehr dankbar für qualifizierte Hilfe!
Sollte ich bei dem Aufbau der obigen Tabellen einen Fehler gemacht
haben, so bitte ich natürlich auch um Mitteilung. Ich denke aber,
dass die Tabellen grundsätzlich gut angelegt sind (keine Redundanz,
Erweiterbarkeit der Benutzer-Tabelle und Sitze-Tabelle, unkomplizierter
Tabelenaufbau, etc. ).
Ich werde diesen Artikel selbst mind. eine Woche lang beobachten. Wenn
dir also in den nächsten Tagen noch was einfällt wird dein Beitrag nicht
ungelesen bleiben ....
LG. Der Bär