Access Abfrage Sotieren
Hallo Ihr da ich blutiger nichts wisser in Access bin wende ich mich an euch
ich möchte so eine Art Bereitschaftsdatenbank machen, nun habe ich folgende Felder "Name" "Datum_von" "Datum_bis"
jetzt hätte ich gerne das der Name der innerhalb des aktuellen Datum ist als erstes steht, allerdings gibt es die Möglichkeit das sich die Bereitschaft ändert
Also z.B
Mitarbeiter A hat von 1.8.2016 06:00 - 7.8.2016 06:00 Bereitschaft
nun erklärt sich Mitarbeiter B sich bereit von
3.8.2016 06:00 - 5.8.2016 06:00 die Bereitschaft zu übernehmen, wie bekomme ich es hin das nun Mitarbeiter B als erstes steht?
Für eure Hilfe besten dank
Grüße
Thomas
ich möchte so eine Art Bereitschaftsdatenbank machen, nun habe ich folgende Felder "Name" "Datum_von" "Datum_bis"
jetzt hätte ich gerne das der Name der innerhalb des aktuellen Datum ist als erstes steht, allerdings gibt es die Möglichkeit das sich die Bereitschaft ändert
Also z.B
Mitarbeiter A hat von 1.8.2016 06:00 - 7.8.2016 06:00 Bereitschaft
nun erklärt sich Mitarbeiter B sich bereit von
3.8.2016 06:00 - 5.8.2016 06:00 die Bereitschaft zu übernehmen, wie bekomme ich es hin das nun Mitarbeiter B als erstes steht?
Für eure Hilfe besten dank
Grüße
Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 311146
Url: https://administrator.de/contentid/311146
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Thomas,
da es ja nicht möglich sein sollte, dass 2 Mitarbeiter gleichzeitig Bereitschaft haben ist der sauberste Ansatz wohl der, dass
die Bereitschaft für Mitarbeiter 1 am 02.08.2016 endet und am 06.08.2016 wieder beginnt.
Dann kannst Du mit einer einfachen WHERE Klausel den Mitarbeiter filtern der gerade Bereitschaft hat.
In Oracle wäre dies
Ansonsten müsstest Du zuerst auch alle Einträge mit der obigen WHERE Klausel filtern und dann den Eintrag nehmen, wo die Differenz SYSDATE zu Datum_bis am kleinsten ist bzw. das niedrigste Datum_bis. Blöd nur wenn es 2 Einträge mit gleichem Datum_bis geben würde. Dann müsstest Du auch noch den Eintrag filtern der das höchste Datum_von beinhaltet.
Meine Vorgehensweise wäre es keine Überschneidungen zuzulassen.
G Jörg
da es ja nicht möglich sein sollte, dass 2 Mitarbeiter gleichzeitig Bereitschaft haben ist der sauberste Ansatz wohl der, dass
die Bereitschaft für Mitarbeiter 1 am 02.08.2016 endet und am 06.08.2016 wieder beginnt.
Dann kannst Du mit einer einfachen WHERE Klausel den Mitarbeiter filtern der gerade Bereitschaft hat.
In Oracle wäre dies
WHERE TRUNC(SYSDATE) BETWEEN Datum_von AND Datum_bis
Ansonsten müsstest Du zuerst auch alle Einträge mit der obigen WHERE Klausel filtern und dann den Eintrag nehmen, wo die Differenz SYSDATE zu Datum_bis am kleinsten ist bzw. das niedrigste Datum_bis. Blöd nur wenn es 2 Einträge mit gleichem Datum_bis geben würde. Dann müsstest Du auch noch den Eintrag filtern der das höchste Datum_von beinhaltet.
Meine Vorgehensweise wäre es keine Überschneidungen zuzulassen.
G Jörg
[OT]
Moin charmeur,
dasselbe hast du auch bei office-loesung.de gefragt und eine ähnliche Anwort erhalten.
Doppelposts sind nicht gern gesehen, weil meistens mindestens einer der Beiträge unvollendet bleibt - sobald in einem Forum eine Lösung erarbeitet wurde, wird der Beitrag im anderen Forum ja uninteressant.
Bitte beende einen der Threads und verweise dort auf den verbleibenden aktiven Thread.
Grüße
Biber
[/OT]
Moin charmeur,
dasselbe hast du auch bei office-loesung.de gefragt und eine ähnliche Anwort erhalten.
Doppelposts sind nicht gern gesehen, weil meistens mindestens einer der Beiträge unvollendet bleibt - sobald in einem Forum eine Lösung erarbeitet wurde, wird der Beitrag im anderen Forum ja uninteressant.
Bitte beende einen der Threads und verweise dort auf den verbleibenden aktiven Thread.
Grüße
Biber
[/OT]