von Barlee » Do, 28.10.2010 23:43
Hallo,
umsetzbar sicherlich, aber nur statisch. D.h. Du musst eine feste Anzahl möglicher Termine pro Tag vorsehen, die dann entweder gefüllt oder eben leer sind.
Die Grundstruktur könntest Du mittels UNION realisieren. So führt z.B. folgendes Kontrukt zu dem Ergebnis, wie im Bild dargestellt.
Code: Alles auswählen
(SELECT
'1' AS "Sort",
'Montag' AS "Tag1",'Dienstag' AS "Tag2",'Mittwoch' AS "Tag3",'Donnerstag' AS "Tag4",'Freitag' AS "Tag5",'Samstag' AS "Tag6",'Sonntag' AS "Tag7"
FROM "Deine_Tabelle" )
UNION
(SELECT
'2','Termin1','Termin1','Termin1','Termin1','Termin1','Termin1','Termin1'
FROM "Deine_Tabelle" )
UNION
--HIER DIE ABFRAGE NACH TERMIN1 DES JEWEILIGEN TAGES REIN
(SELECT
'3','','','','','','',''
FROM "Deine_Tabelle" )
UNION
(SELECT
'4','Termin2','Termin2','Termin2','Termin2','Termin2','Termin2','Termin2'
FROM "Deine_Tabelle" )
UNION
--HIER DIE ABFRAGE NACH TERMIN2 DES JEWEILIGEN TAGES REIN
(SELECT
'5','','','','','','',''
FROM "Deine_Tabelle" )

- Bildschirmfoto1.png (7.93 KiB) 1454 mal betrachtet
Die UNION ist erweiterbar für die (feste) Anzahl von Terminen.
Wie aber weiter? Die o.a. Leerzeilen müssen gefüllt werden.
FOLGENDES ALS IDEE, die Du für eigene Versuche verfolgen oder daraus eigene Ansätze ableiten kannst:
Baue eine Abfrage, die Dir pro Tag die Termine ausgibt und ordne sie nach Terminbeginn. Füge diesem Abfrageergebnis eine laufende Nummer zu ( Forumsuche). Laufende Nr 1 steht dann für den ersten Termin, 2 für den zweiten usw.
Am besten speicherst Du das Ergebnis dann als Ansicht. (rechte Maustaste auf die gespeicherte Abfrage >> "Als Ansicht speichern") Diese erscheint dann unter "Tabellen" und lässt sich auch als solche abfragen.
Die Leerzeilen kannst Du also durch Abfragen der erstellten Ansicht füllen:
Code: Alles auswählen
(SELECT
'3','','','','','','',''
FROM "Deine_Tabelle" )
wird z.B. zu
Code: Alles auswählen
(SELECT
'3',
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 1),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 2),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 3),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 4),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 5),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 6),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 7),
FROM "Deine_Tabelle" )
Wie gesagt, es ist keine fertige Anleitung. Eher ein Grobkonzept. Ob so umsetzbar, muss getestet werden. Aus meiner Sicht eine nicht alltägliche Anforderung, Layouts im Abfrageergebnis darzustellen. Dafür sind Berichte zuständig.
Trotz allem viel Erfolg wünscht Barlee
Hallo,
umsetzbar sicherlich, aber nur statisch. D.h. Du musst eine feste Anzahl möglicher Termine pro Tag vorsehen, die dann entweder gefüllt oder eben leer sind.
Die Grundstruktur könntest Du mittels UNION realisieren. So führt z.B. folgendes Kontrukt zu dem Ergebnis, wie im Bild dargestellt.
[code](SELECT
'1' AS "Sort",
'Montag' AS "Tag1",'Dienstag' AS "Tag2",'Mittwoch' AS "Tag3",'Donnerstag' AS "Tag4",'Freitag' AS "Tag5",'Samstag' AS "Tag6",'Sonntag' AS "Tag7"
FROM "Deine_Tabelle" )
UNION
(SELECT
'2','Termin1','Termin1','Termin1','Termin1','Termin1','Termin1','Termin1'
FROM "Deine_Tabelle" )
UNION
--HIER DIE ABFRAGE NACH TERMIN1 DES JEWEILIGEN TAGES REIN
(SELECT
'3','','','','','','',''
FROM "Deine_Tabelle" )
UNION
(SELECT
'4','Termin2','Termin2','Termin2','Termin2','Termin2','Termin2','Termin2'
FROM "Deine_Tabelle" )
UNION
--HIER DIE ABFRAGE NACH TERMIN2 DES JEWEILIGEN TAGES REIN
(SELECT
'5','','','','','','',''
FROM "Deine_Tabelle" )[/code]
[attachment=0]Bildschirmfoto1.png[/attachment]
Die UNION ist erweiterbar für die (feste) Anzahl von Terminen.
Wie aber weiter? Die o.a. Leerzeilen müssen gefüllt werden.
FOLGENDES ALS IDEE, die Du für eigene Versuche verfolgen oder daraus eigene Ansätze ableiten kannst:
Baue eine Abfrage, die Dir pro Tag die Termine ausgibt und ordne sie nach Terminbeginn. Füge diesem Abfrageergebnis eine laufende Nummer zu ( Forumsuche). Laufende Nr 1 steht dann für den ersten Termin, 2 für den zweiten usw.
Am besten speicherst Du das Ergebnis dann als Ansicht. (rechte Maustaste auf die gespeicherte Abfrage >> "Als Ansicht speichern") Diese erscheint dann unter "Tabellen" und lässt sich auch als solche abfragen.
Die Leerzeilen kannst Du also durch Abfragen der erstellten Ansicht füllen:
[code](SELECT
'3','','','','','','',''
FROM "Deine_Tabelle" )[/code]
wird z.B. zu
[code](SELECT
'3',
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 1),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 2),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 3),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 4),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 5),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 6),
(SELECT "Terminbeginn" FROM "Deine_Ansicht" WHERE "lfdNr" = 1 AND "Tag" = 7),
FROM "Deine_Tabelle" )
[/code]
Wie gesagt, es ist keine fertige Anleitung. Eher ein Grobkonzept. Ob so umsetzbar, muss getestet werden. Aus meiner Sicht eine nicht alltägliche Anforderung, Layouts im Abfrageergebnis darzustellen. Dafür sind Berichte zuständig.
Trotz allem viel Erfolg wünscht Barlee