alle Datensätze die grösser als aktuelles datum sind holen nach kategorie geordnet

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

  • alle Datensätze die grösser als aktuelles datum sind holen nach kategorie geordnet

    hi...

    habe folgendes problem. in eine tabelle habe ich veranstaltungen, die in verschiednen kategorien eingeteilt sind. nun möchte ich für jede kategorie die nächste aktuelle veranstaltung haben, d.h. ich habe 3 kategorien brauchte also 3 datensätze. mit der folgenden abfrage bekomm ich jedoch in der kategorie ein falsches ergebnis
    (heut is der 3.9 und es gibt ne veranstaltung am 12 und 18.9 und ich bekomm immer nur die vom 18.9, obwohl ich ja die vom 12.9 haben will)

    wäre dankbar für nen tip:

    Code:
    SELECT lb.name, DATE_FORMAT( l.datum, '%d.%m.%Y' ) AS date_german, l.ort, l.zeit, k.kat_name
    FROM tbl_lauf l, tbl_lauf_kategorie lk, tbl_kategorie k, tbl_laufbezeichnung lb
    WHERE l.datum >= '2004-09-03' 
    AND k.kategorie_id = lk.kategorie_id 
    AND lb.name_id = l.name_id 
    AND l.lauf_id = lk.lauf_id 
    AND k.kat_name = 'EXT'
    HAVING MIN( l.datum ) >= '2004-09-03'
    ORDER BY k.kategorie_id
    Zuletzt geändert von lx-club; 03.09.2004, 21:34.

  • #2
    Ohne weiter deine Abfrage anzusehen:

    SELECT
    ...
    FROM table t
    WHERE (zeit>heute)
    ORDER BY zeit asc
    LIMIT 3

    bringt die nächsten 3 Termine

    Kommentar


    • #3
      aber wenn ich es mit limit begrenze, dann kann es ja sein ich habe zwei veranstaltungen derselben kategorie nacheinander, und dann soll ja wiederrum nur eine angezeigt werden

      Kommentar


      • #4
        http://www.php-resource.de/forum/sho...threadid=31056 http://www.php-resource.de/forum/sho...threadid=42179

        das sollte dir helfen
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          hi...

          danke für den link. so richtig funktionierts leider noch nicht.
          ich habe meine abfrage jetzt so umgebaut

          Code:
          SELECT lb.name, DATE_FORMAT( l.datum, '%d.%m.%Y' ) AS date_german, l.ort, l.zeit, k.kat_name
          FROM tbl_kategorie k
          INNER JOIN tbl_lauf_kategorie lk ON k.kategorie_id = lk.kategorie_id
          INNER JOIN tbl_lauf l ON l.lauf_id = lk.lauf_id 
          INNER JOIN tbl_laufbezeichnung lb ON lb.name_id = l.name_id
          LEFT JOIN tbl_lauf l_dummy ON l.lauf_id = l_dummy.lauf_id AND l.datum < l_dummy.datum
          WHERE l.datum >= '2004-09-05' 
          AND k.kat_name <> 'BRL'
          ORDER BY k.kategorie_id
          aber damit bekomm ich exakt das gleiche ergebnis wie vorher mit meiner abfrage.

          Kommentar


          • #6
            Original geschrieben von lx-club
            danke für den link
            bitte
            so richtig funktionierts leider noch nicht
            in den links vonm ir steht beide mal was von IS NULL, das vermisse ich bei dir...
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              ja mit der prüfung auf is NULL bekomme ich ja dann den gewünschten datensatz.
              wenn ich mir die lauf _id ausgeben lasse, dann ist die in jedem Datensatz NULL??

              Code:
              SELECT lb.name, DATE_FORMAT( l.datum, '%d.%m.%Y' ) AS date_german, l.ort, l.zeit, k.kat_name
              FROM tbl_kategorie k
              INNER JOIN tbl_lauf_kategorie lk ON k.kategorie_id = lk.kategorie_id
              INNER JOIN tbl_lauf l ON l.lauf_id = lk.lauf_id
              INNER JOIN tbl_laufbezeichnung lb ON lb.name_id = l.name_id
              LEFT JOIN tbl_lauf l_dummy ON l.name_id = l_dummy.name_id AND l.datum < l_dummy.datum
              WHERE l.datum >= '2004-09-05' AND k.kat_name = 'EXT' AND l_dummy.lauf_id IS NULL 
              ORDER BY k.kategorie_id
              ich hab jetzt mal auf eine kategorie eingeschränkt und das ergebniss müste ja ein datensatz sein,
              ich bekomm aber 4, da es noch 4 veranstaltungen dieses jahr gibt

              Kommentar

              Lädt...
              X