MS SQL - Datensätze im select vervielfachen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von rrobbyy.

    MS SQL - Datensätze im select vervielfachen

    Hallo zusammen,

    ich habe eine Tabelle mit Artikeln mit folgenden Spalten und Daten (als Beispiel)


    IDArtikelARTTEXTMEBESTELLT
    1112345Kugelschreiber9
    2324522Hefter1
    3232444Mappe4


    Jetzt sollen diese Artikel etikettiert werden. D.h. Jedes Exemplar benötigt ein Etikett. Das mache ich dann über die SSRS.
    Also benötige ich von ID 1 9 Etiketten, ID 2 1, ID 3 4.

    Jetzt ist die Frage, wie das select aussieht, um 9 Zeilen von ID 1, 1 Zeile von ID 2 und 4 Zeilen von ID 3 zu bekommen...

    ich vermute mal CTE...aber mir ist nicht klar, wie ich ich x mal die Datensätze bekomme

    Ich habe tatsächlich nicht vor, ein extra vb-Programm dafür zu schreiben...
    so, jetzt hier die lösung, falls jemand etwas ähnliches hat

    Quellcode

    1. WITH N AS(
    2. SELECT N
    3. FROM (VALUES(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL))N(N)),
    4. Tally AS(
    5. SELECT TOP (SELECT MAX(convert(integer,MEBESTELLT)) FROM dbo.VORGPOS where <yourfilter>)
    6. ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
    7. AS I
    8. FROM N N1, N N2) --100 rows, add more cross joins for more rows
    9. SELECT YT.ARTIKEL,
    10. YT.ARTTEXT,
    11. YT.MEBESTELLT,
    12. T.I AS [Count]
    13. FROM dbo.VORGPOS YT
    14. JOIN Tally T ON YT.MEGELIEFERT >= T.I
    15. where <yourFilter>
    16. GO