Verdammtes GROUP BY ORDER BY

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

  • Verdammtes GROUP BY ORDER BY

    Hallo,
    habe eine tabelle mit ID, Datum, Kategorie
    Ziel soll sein, jeweils den letzten eintrag einer Kategorie anzuzeigen.

    Erster Ansatz:

    <php>
    SELECT * FROM $tabelle GROUP BY Kategorie ORDER BY Datum DESC
    </php>

    Das das nicht funzt mussich ja nicht sagen.

    Kann mir wer einen hilfreicheren Ansatz geben,

    Gruss
    "der mit dem brett vorm kopp"

  • #2
    du mußt die tabelle noch zusätzlich einmal left joinen, bedingung ist dabei (ON), daß datum1 > datum2 ist ... dort wo du für die rangejointe tabelle NULL erhälst, hast du das letzte datum.

    es gibt noch weitere möglichkeiten: http://dev.mysql.com/doc/refman/5.1/...group-row.html (user comments)
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Wuff!

      dank Dir "derHund".
      verfolge den link mal etwas tiefer :-)
      gruss
      b.

      Kommentar


      • #4
        Hi bastian,

        hab ein ähnliches problem werde aber aus den comments auf http://dev.mysql.com/doc/refman/5.1/...group-row.html nicht so richtig schlau.

        kannst du deinen query mal posten mit dem es funktioniert hat?

        vielen dank
        toshen

        Kommentar


        • #5
          bin ehrlich gesagt auch nochnicht so weit,
          poste aber das ergebnis, sobald es rund läuft.
          gruss
          b.

          schau mal, evtl. haste ja eher zeit dich damit zu befassen:

          SELECT DISTINCTROW jobs.worker
          FROM jobs LEFT JOIN jobs AS s2
          ON jobs.worker = s2.worker AND jobs.jobdate < s2.jobdate
          WHERE s2.worker IS NULL
          ORDER BY inspect.date ASC;


          ODER

          select s1.article
          , s1.dealer
          , s1.price
          , count(*) as articles
          from shop s1
          inner
          join shop s2
          on s1.dealer = s2.dealer
          group
          by s1.article
          , s1.dealer
          , s1.price
          having s1.price = max(s2.price)
          Zuletzt geändert von bastian; 06.04.2006, 16:51.

          Kommentar


          • #6
            Hallo bastian

            SELECT Datum,Kategorie FROM $tabelle GROUP BY Datum,Kategorie ORDER BY Datum DESC

            Kommentar


            • #7
              Hmm... so einfach ist es dann wohl doch nicht... aber das sollte gehen:

              SELECT
              A.Kategorie,
              A.Datum,
              A.ID
              FROM $tabelle A
              WHERE A.Datum=(select max(B.Datum) from $tabelle B where A.Kategorie=B.Kategorie)

              Kommentar


              • #8
                hey fuser,
                dank dir für deine hilfe. konnte es mittlerweile auch lösen.
                besten gruss
                basti

                Kommentar

                Lädt...
                X