Supportnet Computer
Planet of Tech

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
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   3000


und 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.StelleNr

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:
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 Planung

usw 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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: