1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| DECLARE @commande TABLE
(
commande_code char(4) NOT NULL
, article_nom varchar(32) NOT NULL
, article_quantite tinyint NOT NULL
, UNIQUE (commande_code, article_nom)
)
INSERT INTO @commande
VALUES ('CMD1', 'CrayonBleu', 2)
, ('CMD1', 'CrayonRouge', 3)
, ('CMD1', 'StyloVert', 5)
;WITH
N AS (SELECT NULL AS v UNION ALL SELECT NULL)
, N1 AS (SELECT A.v FROM N AS A CROSS JOIN N AS B)
, N2 AS (SELECT A.v FROM N1 AS A CROSS JOIN N1 AS B)
, D AS
(
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS v
FROM N2
)
SELECT C.*
FROM D
INNER JOIN @commande AS C
ON D.v <= C.article_quantite
ORDER BY C.article_nom |
Partager