[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2005
    Beiträge
    98

    SQL ersten Satz einer Gruppe holen

    Ich glaube ich stehe auf dem Schlauch,
    Ich habe eine Tabelle da stehen Rechnungspositionen drin, also:

    Firma,
    Auftrag,
    Lieferschein,
    Position,
    Artikel,
    Kunde,
    Vertreter

    Ich brauche jetzt pro Artikel den Satz mit der niedrigsten Auftagsnummer.


    Meine Idee war daher:
    Code:
    SELECT 
        *
    FROM
        Positionen tab1
    INNER JOIN
    (
        SELECT
            Firma,
            min(Auftrag) as MinAuftrag,
            Lieferschein,
            Position
        FROM
            Positionen
        GROUP BY 
            Firma,
            Lieferschein,
            Position,
            Artikel
    ) tab2
    ON
       tab1.Firma = tab2.Firma and
       tab1.Auftrag = MinAuftrag and
       tab1.Lieferschein = tab2.Lieferschein and
       tab1.Position = tab2.Position
    aber das funktioniert so nicht.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Die frage ist doch, kann ein Lieferschein mehr als einen Auftrag haben und was macht die Position in der Gruppierung?

    SELECT
    Firma,
    Artikel
    min(Auftrag) as MinAuftrag,
    Lieferschein,
    FROM
    Positionen
    GROUP BY
    Firma,
    Lieferschein,
    Artikel
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2005
    Beiträge
    98
    Ein Auftrag kann mehrere Lieferscheine haben und natürlich auch mehr Positionen.

    Aber ja, das ist glaub ich mein Denkfehler, brauchen tue ich die beim nem Inner Join nicht.

  4. #4
    Registriert seit
    Jun 2005
    Beiträge
    98
    Wen es interessiert, so scheint es zu klappen:
    Code:
    SELECT 
      *
    FROM
      Positionen tab1
    INNER JOIN
    (
      SELECT
        Firma,
        min(Auftrag || Lieferschein || Position) as MinIdx,
      FROM
        Positionen
      GROUP BY 
        Firma,
        Artikel
    ) tab2
    ON
      tab1.Firma = tab2.Firma and
      tab1.Auftrag || tab1.Lieferschein || tab1.Position = MinAuftrag and 
      tab1.Artikel = tab2.Artikel
    WHERE
      tab1.Auftrag || tab1.Lieferschein || tab1.Position = MinAuftrag and

Similar Threads

  1. SQL Update - Nur den ersten Satz ändern
    By svente in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 22-08-18, 16:34
  2. Daten holen von Excel
    By DKSPROFI in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 06-12-16, 11:48
  3. sql 2 sätze einer gruppe
    By Robi in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 06-04-16, 16:04
  4. SQL-Abfrage: Maximum einer Gruppe
    By Bitverdreher in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-11-13, 08:39
  5. mit word-makro daten aus as/400 holen
    By karin-vogelmann in forum NEWSboard Windows
    Antworten: 0
    Letzter Beitrag: 06-06-03, 15:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •