Aus mehreren Datumsangaben einen Zeitraum herausfiltern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Aus mehreren Datumsangaben einen Zeitraum herausfiltern

    Hallo!

    Ich bin nun schon seit einiger Zeit an einem Projekt tätig und bin auf folgendes Problem gestoßen, wo ich irgendwie auf keine Lösung komme.

    Beispiel:

    Wir haben eine Tabelle folgender Form:

    Code:
    ID  PrfID  UserID  Date
    1    1      2        2007-05-06
    2    2      2        2007-02-06
    3    1      2        2007-07-07
    4    3      2        2006-05-06
    5    1      2        2006-06-06
    6    1      2        2006-02-06
    Wie finde ich nun raus welche Prüfungen in einem Zeitraum von 12 Monaten liegen? Also ich habe keinen Anfangs- bzw. Endzeitraum sondern einfach innerhalb von 12 Monaten müssen z.B. 4 Prüfungen absolviert sein. Wie filtere ich das? Ich komm da einfach nicht drauf.

    Danke im Voraus

  • #2
    12 monate von heute an? oder die letzten 12 monate?

    Kommentar


    • #3
      Ja genau das ist das Problem. Es gibt kein von Heute an oder die letzten 12. Das Query soll mir alle Prüfungen zeigen die in einem Zeitraum von 12 Monaten liegen.

      Egal ob der Zeitraum am 2006-05-02 beginnt oder 2007-05-02 - Hoffe das verwirrt nicht ^^

      Kommentar


      • #4
        Original geschrieben von Blizi
        Das Query soll mir alle Prüfungen zeigen die in einem Zeitraum von 12 Monaten liegen.

        Egal ob der Zeitraum am 2006-05-02 beginnt oder 2007-05-02
        Das wären dann also, sofern nicht eine Prüfung über zwölf Monate nach der vorherigen und über zwölf Monate vor der nächsten stattfand, alle Prüfungen.

        Ist es wirklich das, was du willst ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          und woher kommen die zeitraumgrenzen? werden sie per zufall bestimmt?

          Kommentar


          • #6
            Hi,

            Du suchst die neuesten Einträge der verschiedenen Prüfungen für einen User heraus und schaust Dir den Zeitraum an, der zwischen der zuletzt durchgeführten Prüfung und der am längsten zurückliegenden liegt. Übersetze in SQL und PHP.

            LG
            EDIT:
            sofern Du nur den letzten Prüfungszyklus prüfen willst, sonst hast Du ein Problem
            Zuletzt geändert von kuddeldaddeldu; 27.04.2007, 14:46.

            Kommentar


            • #7
              Ja genau den Fall den du beschrieben hast das wäre ausschließlich für den letzten Prüfzyklus. Ich versuche es mal anders darzustellen. Ein "Zeitstrahl" sagt den meisten sicherlich etwas

              Code:
              --------------------------------------------------------------------------------------------------------------------------------------------------
              2006-01-01              1          2           3                       4                                    2007-01-01               5     6
              Die Zahlen sind jetzt die einzelnen Prüfungen. Jetzt möcht ich dass mir das Query alle Prüfungen zurückgibt die innerhalb eines 12Monats Zeitraum liegen. D.h. mal grob geschätzt wären das jetzt 1,2,3,4 allerdings auch 3,4,5,6

              Der Zeitraum kann sich also verschieben, bleibt aber konstant lang. Also immer 12 Monate in diesem Beispiel. Leider kann ich keine Anfangs- und Endgrenzen festlegen. Ich weiß praktisch nur dass EndeZeitraum - AnfangZeitraum <= 12 Monate sein muss

              Kommentar


              • #8
                reicht dir nicht
                Code:
                SELECT ... WHERE YEAR(datum) = 2006
                ? oder können die zeitraumgrenzen auch mitten im jahr liegen?

                Kommentar


                • #9
                  Ja die müssen sich nicht aufs Kalenderjahr beschränken. Schwierig irgendwie

                  Glaub das blöde ist, dass die Ergebnismenge nicht eindeutig ist.
                  Zuletzt geändert von Blizi; 27.04.2007, 17:33.

                  Kommentar

                  Lädt...
                  X