none
Fortlaufende Nummer RRS feed

  • Frage

  • Hallo und schönen Tag!

    Ich würde einen Tipp für folgendes Problem bnötigen:

    Von einer Tabelle werden bestimmte Zeilen in eine andere Tabelle angefügt. DienINSERT INTo Anweisung funkgioniert.

    Das Problem sind die Positionsnummer, Wie kann ich einen "Zähler" erstellen

    Die unten stehenden Anweisung ergibt das Feld Pos immer 1. Bei 10 Ds.

    SELECT Bezeichnung,COUNT(*) As POs,

    Rabatt,Listenpreis,Art FROM dbo.tblAuftragDeteil Group BY AuNummer,Liefern, StGeliefert,Bezeichnung, Rabatt,Listenpreis,Art HAVING AuNummer = 1 AND liefern = 'True' AND StGeliefert = 0;

    Die Tabelle an die Angefüfgt werden soll ist nicht dabei.

    Besten Dank im voraus sür einen Tipp!

    Mfg

    Peter

    Montag, 20. Mai 2019 13:39

Alle Antworten

  • Die erstellst du im Select mit ROW_NUMBER:
    https://docs.microsoft.com/de-de/sql/t-sql/functions/row-number-transact-sql?view=sql-server-2017
    Montag, 20. Mai 2019 14:25
  • Hallo Peter,

    da Du von Positionsnummern sprichst: Pro Auftrag eine fortlaufende Nummer? Oder über das gesamte Ergebnis der Abfrage?

    Für ersteres wäre der Aufbau bspw. wie folgt:

    SELECT   Bezeichnung,
             Rabatt,
             Listenpreis,
             Art,
             ROW_NUMBER() OVER ( PARTITION BY AuNummer ORDER BY AuNummer, Bezeichnung ) AS Pos
    FROM     dbo.tblAuftragDetail
    GROUP BY AuNummer,
             Liefern,
             StGeliefert,
             Bezeichnung,
             Rabatt,
             Listenpreis,
             Art
    HAVING   AuNummer = 1
    AND      liefern = 'True'
    AND      StGeliefert = 0

    Für die zweite Variante lässt Du einfach "PARTITION BY AuNummer" weg.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 20. Mai 2019 15:40
    Moderator