Nur bestimmte Datensätze aus Gruppen auslesen

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

  • Nur bestimmte Datensätze aus Gruppen auslesen

    Hallo zusammen, habe ein Problem und hoffe dass einer von Euch weiter helfen kann.

    Es sollen Daten zur Anzeige gebracht werden, von denen mehrere in verschiedenen Varianten vorliegen können.
    Es soll aber immer nur einer pro SystemNr angezeigt und dann immer vorranging System 1, wenn nicht vorhanden dann System 2 u.s.w.

    Pro Seite werden 40 Datensätze angezeigt ($dataperpage = 40) - insgesamt sind es zum Zeitpunkt ca. 8000 Datensätze, also nicht ganz so viele, aber es werden mehr werden.

    Beispieldaten:
    SystemNr Picture System VM

    20131001105755 bild1 1 99
    20131001105755 bild1 1 67
    20131001105755 bild2 2 35
    20131001105755 bild2 2 23
    20131001105755 bild1 1 22


    20131001105756 bild2 2 34
    20131001105756 bild3 3 38

    20131001105752 bild23 1 39

    20131001105753 bild11 1 67
    20131001105753 bild11 1 68
    20131001105753 bild11 1 69
    20131001105753 bild11 1 70



    Hatte Hoffnung ich komme damit ans Ziel, aber irgendwie funktioniert das nicht.

    S1 ist ein Wert zum sperren
    KAT eine weiter Unterteilung


    $sql="SELECT * FROM info WHERE S1='0' AND KAT='R' AND System =
    (
    SELECT System
    FROM info
    WHERE S1='0' AND KAT='R'
    ORDER BY FIELD(System, '3,2,1')
    LIMIT 1
    )

    GROUP BY SystemNr ORDER BY FL_Start DESC LIMIT $itemfrom , $dataperpage";



    Beste Grüße, Werner

  • #2
    MySQL :: MySQL 5.0 Reference Manual :: 3.6.4 The Rows Holding the Group-wise Maximum of a Certain Column

    Kommentar


    • #3
      Danke h3ll,

      es hat mir weitergeholfen dass ich die Abfrage ausführen kann und Ergebnisse.
      Habe das jetzt so gelöst:

      $sql="SELECT *
      FROM (SELECT *
      FROM info
      WHERE S1='0' AND KAT='R'
      ORDER BY System ASC) AS s
      GROUP BY SystemNr ORDER BY FL_Start DESC
      LIMIT $itemfrom , $dataperpage";


      aber leider kann ich so nur den normalen Order BY ausführen.

      Ich würde aber eine Order Regel benötigen, da es nicht immer auf, oder absteigend lösbar ist.

      Deshalb mein Versuch mit 'ORDER BY FIELD(System, '3,2,1')' kann auch 'ORDER BY FIELD(System, '6,22,1')' lauten, aber das klappt auch mit dem neuen Versuch nicht. Gibt es noch andere Möglichkeiten das zu lösen?

      Danke und Gruß, Werner

      Kommentar


      • #4
        Woher kommt die Reihenfolge 6, 22, 1?

        Kommentar


        • #5
          Die Reihenfolge ist je nach Abfrage vorgegeben, aber eben leider nicht immer gleich.

          Kommentar


          • #6
            Ganz vergessen:

            Ergänzung zu oberem Muster, dass die unterschiedlichen Werte für System klarer werden.

            20131001105754 bild29 6 54
            20131001105755 bild78 22 55


            Gruß Werner

            Kommentar

            Lädt...
            X