En utilisant Sql Server CTE et ROW_NUMBER vous pouvez essayer d'utiliser
DECLARE @ParentTable TABLE(
ID INT
)
INSERT INTO @ParentTable SELECT 1
INSERT INTO @ParentTable SELECT 2
INSERT INTO @ParentTable SELECT 3
DECLARE @ChildTable TABLE(
ID INT,
ParentID INT
)
INSERT INTO @ChildTable SELECT 1, 1
INSERT INTO @ChildTable SELECT 2, 1
INSERT INTO @ChildTable SELECT 3, 1
INSERT INTO @ChildTable SELECT 4, 1
INSERT INTO @ChildTable SELECT 5, 1
INSERT INTO @ChildTable SELECT 6, 1
INSERT INTO @ChildTable SELECT 7, 1
INSERT INTO @ChildTable SELECT 8, 2
INSERT INTO @ChildTable SELECT 9, 2
INSERT INTO @ChildTable SELECT 10, 3
INSERT INTO @ChildTable SELECT 11, 3
;WITH RowNums AS(
SELECT pt.ID ParentID,
ct.ID ChildID,
ROW_NUMBER() OVER (PARTITION BY pt.ID ORDER BY ct.ID) RowNum
FROM @ParentTable pt INNER JOIN
@ChildTable ct ON pt.ID = ct.ParentID
)
SELECT ParentID,
ChildID
FROM RowNums
WHERE RowNum <= 5
maintenant mis à niveau "approxicode un peu testé" – LesterDove
Pour votre information, cela a fonctionné. Je ne trouve pas assez de bonnes réponses pour ne pas défendre celles qui fonctionnent réellement :-) – LesterDove