Announcement

Collapse
No announcement yet.

Abfrage nach freiem Platz anhand Zeitraum

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abfrage nach freiem Platz anhand Zeitraum

    Hallo zusammen,
    ich bin noch sehr neu bei SQL und versuche gerade mir selbst ein bisschen was beizubringen und habe nun ein kleines Projekt gestartet, an dem ich hoffentlich einiges lernen werde Stehe jedoch gerade vor einem Problem, wo ich nicht genau weiss, wie ich die Abfrage gestalten soll.

    Zu dem Projekt: Ich möchte gerne eine Datenbank zur Belegungsplanung von Gruppen erstellen. Eine Gruppe hat Platz für 21 Personen. Die Abfrage vor der ich gerade stehe, ist folgendermaßen (ich hoffe ich kann sie nachvollziehbar beschreiben):

    In einer Tabelle ist sowohl Eintrittsdatum als auch Austrittsdatum der jeweiligen Personen gespeichert. Nun kommt eine Anfrage für einen bestimmten Zeitraum. Kann ich eine Abfrage erstellen, bei der ich herausbekomme ob innerhalb dieses Zeitraumes ein Platz in der Gruppe frei ist? Bzw, alle Personen anzeigt, die in diesem Zeitraum in der Gruppe sind, so dass ich sehen kann, ob ein freie Platz ist?

    Vielen Dank schonmal für Rückmeldungen

  • #2
    Code:
     SELECT COUNT(*) FROM BELEGUNG WHERE (
     (STR_TO_DATE('".$datVon."','%d.%m.%Y')<=STR_TO_DATE(BEGIN,'%d.%m.%Y')) AND (STR_TO_DATE(BEGIN,'%d.%m.%Y')<=STR_TO_DATE('".$datBis."','%d.%m.%Y')))
     OR
     ((STR_TO_DATE('".$datVon."','%d.%m.%Y')<=STR_TO_DATE(END,'%d.%m.%Y')) AND (STR_TO_DATE(END,'%d.%m.%Y')<=STR_TO_DATE('".$datBis."','%d.%m.%Y')))
     OR
     ((STR_TO_DATE(BEGIN,'%d.%m.%Y')<=STR_TO_DATE('".$datVon."','%d.%m.%Y')) AND (STR_TO_DATE(END,'%d.%m.%Y')>=STR_TO_DATE('".$datBis."','%d.%m.%Y')))
    Aus einem PHP-Script. Hier sind $datVon und $datBis Zeichenkettten im Format dd.mm.jjjj, BEGIN und END sind Colums in der DB die Beginn und Ende (ebenfalls VARCHAR) der belegten Zeiten sind
    Du kannst das ersetzen und wenn du DATE arbeitest das Konvertieren nach Date entfernen
    Wenn das Ergebnis (count(*)) > 0 hast du eine Überschneidung
    Christian

    Comment


    • #3
      Ahh, sorry -das sollte eigtl ins SQL Unterforum - aber vielen Dank schonmal für den Input

      Comment


      • #4
        Verschoben.....die Logik bleibt die gleiche....
        Christian

        Comment

        Working...
        X