Guest User

Untitled

a guest
Jan 23rd, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. MasterID
  2. 1
  3. 2
  4.  
  5. ID MasterID DetailsDescription
  6. 1 1 XXXXX
  7. 2 1 XXXXX
  8. 3 1 XXXXX
  9. 4 1 XXXXX
  10. 5 1 XXXXX
  11. 6 1 XXXXX
  12. 7 2 XXXX
  13. 8 2 XXXX
  14. 9 2 XXXX
  15. 10 2 XXXX
  16. 11 2 XXXX
  17. 12 2 XXXX
  18. 13 2 XXXX
  19. 14 2 XXXX
  20.  
  21. ID MasterID DetailsDescription
  22. 1 1 XXXXX
  23. 2 1 XXXXX
  24. 3 1 XXXXX
  25. 4 1 XXXXX
  26. 5 1 XXXXX
  27. 6 1 XXXXX
  28. 1 NULL
  29. 1 NULL
  30. 1 NULL
  31. 1 NULL
  32. 7 2 XXXX
  33. 8 2 XXXX
  34. 9 2 XXXX
  35. 10 2 XXXX
  36. 11 2 XXXX
  37. 12 2 XXXX
  38. 13 2 XXXX
  39. 14 2 XXXX
  40. 2 NULL
  41. 2 NULL
  42.  
  43. DECLARE @MasterTable TABLE(MasterID INT)
  44. INSERT INTO @MasterTable
  45. VALUES(1),(2)
  46.  
  47. DECLARE @DetailsTable TABLE (ID INT, MasterID INT, _Text NVARCHAR(255))
  48. DECLARE @X INT=1
  49. WHILE @X <7
  50. BEGIN
  51. INSERT INTO @DetailsTable VALUES (@X,1, 'XXXXX')
  52. SET @X+=1
  53. END
  54.  
  55. SET @X=1
  56. WHILE @X <9
  57. BEGIN
  58. INSERT INTO @DetailsTable VALUES (@X, 2, 'XXXXX')
  59. SET @X+=1
  60. END
  61.  
  62. DECLARE @TEMP TABLE (M_ID INT)
  63. DECLARE @ID INT
  64. INSERT @TEMP SELECT DISTINCT MasterID FROM @MASTERTABLE
  65. WHILE ((SELECT COUNT(1) FROM @TEMP) > 0)
  66. BEGIN
  67. SET @ID = (SELECT TOP 1 M_ID FROM @TEMP)
  68. INSERT @DETAILSTABLE
  69. SELECT TOP (10 - ISNULL(NULLIF((SELECT COUNT(*) FROM @DETAILSTABLE WHERE MASTERID = @ID) % 10, 0), 10))
  70. (SELECT MAX(ID) FROM @DETAILSTABLE WHERE MasterID = @ID)+n, @ID, NULL
  71. FROM (VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) A(n)
  72. DELETE @TEMP WHERE M_ID = @ID
  73. END
  74.  
  75. SELECT * FROM @DETAILSTABLE ORDER BY MasterID, ID
Add Comment
Please, Sign In to add comment