Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MasterID
- 1
- 2
- ID MasterID DetailsDescription
- 1 1 XXXXX
- 2 1 XXXXX
- 3 1 XXXXX
- 4 1 XXXXX
- 5 1 XXXXX
- 6 1 XXXXX
- 7 2 XXXX
- 8 2 XXXX
- 9 2 XXXX
- 10 2 XXXX
- 11 2 XXXX
- 12 2 XXXX
- 13 2 XXXX
- 14 2 XXXX
- ID MasterID DetailsDescription
- 1 1 XXXXX
- 2 1 XXXXX
- 3 1 XXXXX
- 4 1 XXXXX
- 5 1 XXXXX
- 6 1 XXXXX
- 1 NULL
- 1 NULL
- 1 NULL
- 1 NULL
- 7 2 XXXX
- 8 2 XXXX
- 9 2 XXXX
- 10 2 XXXX
- 11 2 XXXX
- 12 2 XXXX
- 13 2 XXXX
- 14 2 XXXX
- 2 NULL
- 2 NULL
- DECLARE @MasterTable TABLE(MasterID INT)
- INSERT INTO @MasterTable
- VALUES(1),(2)
- DECLARE @DetailsTable TABLE (ID INT, MasterID INT, _Text NVARCHAR(255))
- DECLARE @X INT=1
- WHILE @X <7
- BEGIN
- INSERT INTO @DetailsTable VALUES (@X,1, 'XXXXX')
- SET @X+=1
- END
- SET @X=1
- WHILE @X <9
- BEGIN
- INSERT INTO @DetailsTable VALUES (@X, 2, 'XXXXX')
- SET @X+=1
- END
- DECLARE @TEMP TABLE (M_ID INT)
- DECLARE @ID INT
- INSERT @TEMP SELECT DISTINCT MasterID FROM @MASTERTABLE
- WHILE ((SELECT COUNT(1) FROM @TEMP) > 0)
- BEGIN
- SET @ID = (SELECT TOP 1 M_ID FROM @TEMP)
- INSERT @DETAILSTABLE
- SELECT TOP (10 - ISNULL(NULLIF((SELECT COUNT(*) FROM @DETAILSTABLE WHERE MASTERID = @ID) % 10, 0), 10))
- (SELECT MAX(ID) FROM @DETAILSTABLE WHERE MasterID = @ID)+n, @ID, NULL
- FROM (VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) A(n)
- DELETE @TEMP WHERE M_ID = @ID
- END
- SELECT * FROM @DETAILSTABLE ORDER BY MasterID, ID
Add Comment
Please, Sign In to add comment