Announcement

Collapse
No announcement yet.

Nur 1. Zeile eines Ergebnis-Sets ausgeben

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

  • Nur 1. Zeile eines Ergebnis-Sets ausgeben

    Ich habe eine Table mit folgendem Aufbau:

    Auftrag Hauptposition Lieferdatum Menge Wert
    ------------------------------------------------------------
    16722 200 21/01/2008 1 245
    16722 200 23/01/2008 3 600
    16722 200 21/01/2008 1 552
    16722 350 01/02/2008 2 255
    16722 350 19/01/2008 2 255
    16755 100 10/01/2008 6 120
    16755 100 11/01/2008 5 100
    16755 100 05/01/2008 1 200

    Nun möchte ich nur die Sätze die je Auftrag+Hauptposition das kleinste Lieferdatum haben.
    Anhand der obigen Table sollte das Ergebnis so aussehen:

    Auftrag Hauptposition Lieferdatum Menge Wert
    ------------------------------------------------------------
    16722 200 21/01/2008 1 245
    16722 350 19/01/2008 2 255
    16755 100 05/01/2008 1 200

    Wie kann ich das machen?

  • #2
    Welches DBMS?

    MySQL: limit start, anzahl
    MSSQL: TOP <anzahl>
    FireBird: First <Anzahl> skip <Start>
    Interbase/FireBird: Rows <start>,<Anzahl>

    Man könnte auch Gruppieren, was aber ohne PK nicht so möglich ist.

    Comment


    • #3
      So könnte es gehen:

      [highlight=SQL]
      SELECT A.Auftrag, A.Hauptposition, A.Lieferdatum, A.Menge, A.Wert
      FROM Table AS A
      WHERE A.Lieferdatum = (SELECT MIN(B.Lieferdatum)
      FROM Table AS B
      WHERE B.Auftragsnummer = A.Auftragsnummer
      AND B.Hauptposition = A.Hauptposition) [/highlight]

      Vorausgesetzt, es gibt pro Tag nur einen Auftrag.
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment


      • #4
        DBMS ist Access (sofern man das DBMS nennen kann) :-)
        Das Ganze sollte eigentlich nur eine kleine Auswertung werden.
        Gestaltet sich aber gar nicht so einfach.
        PK hab ich leider keinen in dieser Table!

        Comment


        • #5
          @O.Helper:
          Danke für den Tip, funktioniert leider nicht ganz so wie gewünscht.
          Denn wenn mehrere mit dem selben Datum vorkommen, soll es nur einen Satz ausgeben!
          Lässt sich das irgendwie realisieren?
          Gibt's vielleicht so etwas wie FIRST für die erste Zeile des Ergebnisses oder so?

          Comment


          • #6
            Gibt es denn auf der Tabelle keinen richtigen PrimaryKey?
            Denn ohne wird es schwierig.
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X