Supportnet / Forum / Datenbanken
Access: Aus Spalten Zeilen genrieren
Frage
Hio!
Ich hab ein Problem:
Ich habe eine Tabelle "Planung":
Datum Stelle1 Stelle2 Stelle3
01.01.08 1000 2000 3000
02.01.08 2000 1000 3000
Es handelt sich um eine Personalplanung, zu jeder Stelle gehören feste Arbeitszeiten. Ich möchte aus dieser Tabelle "Planung" folgende Infos bekommen:
Datum Pers.Nr. Stelle ArbeitBegin ArbeitEnde
01.01.08 1000 Stelle1 7:00 14:00
01.01.08 2000 Stelle2 8:00 16:00
.
.usw.
Leider fehlt mir total der Anzatz wie ich das umsetzen kann! Ich habe schon an einen riesen Abfragewuscht gedacht, da es aber um 20 Stellen und 40 Mitarbeiter geht, ist das etwas... unclever.!
Für eine Idee wäre ich super Dankbar!!
Viele Grüße
Steffen
Antwort 1 von lorf
Hallo Steffen,
du machst die Tabelle "Plan2" mit den Feldern
und dazu machst du die Tabelle "Stelle" mit den Feldern StelleNr, Bezeichnung, ArbeitBeginn, ArbeitEnde, Entgelt, Funktion, ...
Beide führst du mit der Abfrage:
zusammen, wobei StelleNr in beiden Tabellen gleichen Typ und gleiche Bezeichnungen enthalten sollten.
oder
du hast also die Tabelle "Planung" mit den Feldern Datum , Stelle1, Stelle2, Stelle3 usw mit PersNr als Inhalt
und "Stelle" wie oben, denn brauchst du für jede Zeile deiner Info eine SELECT-Anweisung, also 20 pro Tag bei 20 Stellen:
Und an das Datum musst du auch noch denken, weil du Planung mehrmals lesen musst.
Das ist ein totaler Krampf.
Du wirst also nicht umhin kommen, deine Planungstabelle in die Form Datum, StelleNr, PersNr zu bringen.
Dazu kannst du die Daten mit
usw für deine 20 Stellen auslesen und eingefügen.
Weiterführende Literatur unter Stichwort "Normalisierung von Tabellen".
Gruß
lorf
du machst die Tabelle "Plan2" mit den Feldern
Datum StelleNr PersNr,
01.01.08 Stelle1 1000
01.01.08 Stelle2 2000
01.01.08 Stelle3 3000
02.01.08 Stelle1 2000
02.01.08 Stelle2 1000
02.01.08 Stelle3 3000und dazu machst du die Tabelle "Stelle" mit den Feldern StelleNr, Bezeichnung, ArbeitBeginn, ArbeitEnde, Entgelt, Funktion, ...
Beide führst du mit der Abfrage:
SELECT Datum, PersNr, StelleNr, ArbeitBeginn, ArbeitEnde
FROM Plan2, Stelle
WHERE Plan2.StelleNr=Stelle.StelleNrzusammen, wobei StelleNr in beiden Tabellen gleichen Typ und gleiche Bezeichnungen enthalten sollten.
oder
du hast also die Tabelle "Planung" mit den Feldern Datum , Stelle1, Stelle2, Stelle3 usw mit PersNr als Inhalt
und "Stelle" wie oben, denn brauchst du für jede Zeile deiner Info eine SELECT-Anweisung, also 20 pro Tag bei 20 Stellen:
SELECT Datum, StelleNr1, "Stelle1",ArbeitBeginn, ArbeitEnde
FROM Planung, Stelle
WHERE (Planung.StelleNr=1) and (Datum =#01.01.08#)
SELECT Datum, StelleNr2, "Stelle2",ArbeitBeginn, ArbeitEnde
FROM Planung, Stelle
WHERE (Planung.StelleNr=2) and (Datum =#01.01.08#)
Und an das Datum musst du auch noch denken, weil du Planung mehrmals lesen musst.
Das ist ein totaler Krampf.
Du wirst also nicht umhin kommen, deine Planungstabelle in die Form Datum, StelleNr, PersNr zu bringen.
Dazu kannst du die Daten mit
INSERT INTO Plan2
SELECT Datum, "StelleNr1", Stelle1FROM Planung
INSERT INTO Plan2
SELECT Datum, "StelleNr2", Stelle2 FROM Planungusw für deine 20 Stellen auslesen und eingefügen.
Weiterführende Literatur unter Stichwort "Normalisierung von Tabellen".
Gruß
lorf
Antwort 2 von SteffenOIOIOI
Super Danke für den Hinweis! Ursprünglich wollte ich auch diese Normalisierten tabellen vergleichen. Nur hab ich ein Problem: Die Tabelle "Planung" entstand aus der Forderung, dass mit Hilfe eines Formulars eine Kalenderwoche, oder zumindest ein Tag geplant werden kann.
Also Hat man ein großes Formular mit dem jede Stelle durch eine Combo-Box gefüllt werden kann. Ich denke hier liegt mein Ansatzfehler. Ich wollte quasi hinter das Formular eine Tabelle spannen, in die die Infos alle gehen.
Da ich jetzt so verqueert immer in diesem Schema denke ist es verwirrend schwer dieses Planunginterface mit einer normalisierten Tabelle zu hinterlegen.
Wenn ich den Schritt habe, klappt der Rest glaub ich ganz gut..
Ich hoffe, dass ich mich verständlich ausgedrückt habe..
Schonmal vielen Dank für Hinweise an einen Verwirrten.. :-)
Steffen
Also Hat man ein großes Formular mit dem jede Stelle durch eine Combo-Box gefüllt werden kann. Ich denke hier liegt mein Ansatzfehler. Ich wollte quasi hinter das Formular eine Tabelle spannen, in die die Infos alle gehen.
Da ich jetzt so verqueert immer in diesem Schema denke ist es verwirrend schwer dieses Planunginterface mit einer normalisierten Tabelle zu hinterlegen.
Wenn ich den Schritt habe, klappt der Rest glaub ich ganz gut..
Ich hoffe, dass ich mich verständlich ausgedrückt habe..
Schonmal vielen Dank für Hinweise an einen Verwirrten.. :-)
Steffen
Antwort 3 von lorf
Hallo Steffen,
schön das wir einer Meinung sind.
Denn muss uns ja nur noch was mit dem Formular einfallen. Da es ein Office- oder Webformular ist, braucht man es eigentlich nur für jeden Tag so oft auslesen, wie Stellen da sind und jeweils Zeile für Zeile in Plan2 schreiben und jeder hat was er braucht.
Tja so könnte es gehen.
Gruß
lorf
schön das wir einer Meinung sind.
Denn muss uns ja nur noch was mit dem Formular einfallen. Da es ein Office- oder Webformular ist, braucht man es eigentlich nur für jeden Tag so oft auslesen, wie Stellen da sind und jeweils Zeile für Zeile in Plan2 schreiben und jeder hat was er braucht.
Tja so könnte es gehen.
Gruß
lorf

