Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. RELATIONid MAPid D1id D2id D3id
  2. 4999 4999 626 1250 7
  3. 5000 5000 626 1250 8
  4.  
  5. Nodeid ParentNodeid Header
  6. 626 null D1
  7. 1250 626 D2
  8. 7 1250 D3
  9. 8 1250 D3
  10.  
  11. RELATIONid MAPid D1id D2id D3id
  12. 4999 4999 626 1250 7
  13. 5000 5000 626 1250 8
  14. 5001 5001 627 1300 10
  15. 5002 5002 627 1300 12
  16. 5003 5003 628 1400 15
  17.  
  18. Nodeid ParentNodeid Header
  19. 626 null D1
  20. 1250 626 D2
  21. 7 1250 D3
  22. 8 1250 D3
  23. 627 null D1
  24. 1300 627 D2
  25. 10 1300 D3
  26. 12 1300 D3
  27. 628 null D1
  28. 1400 628 D2
  29. 15 1400 D3
  30.  
  31. SELECT
  32. v.Nodeid,
  33. v.ParentNodeid,
  34. v.Header
  35. FROM
  36. dbo.atable
  37. CROSS APPLY
  38. (
  39. VALUES
  40. (D1id, NULL, 'D1'),
  41. (D2id, D1id, 'D2'),
  42. (D3id, D2id, 'D3')
  43. ) AS v (Nodeid, ParentNodeid, Header)
  44. ;
  45.  
  46. SELECT DISTINCT
  47. v.Nodeid,
  48. v.ParentNodeid,
  49. v.Header
  50. ...
  51.  
  52. SELECT DISTINCT
  53. t.D1id,
  54. t.D2id,
  55. t.D3id,
  56. v.Nodeid,
  57. v.ParentNodeid,
  58. v.Header
  59. FROM
  60. dbo.atable AS t
  61. CROSS APPLY
  62. (
  63. VALUES
  64. (t.D1id, NULL , 'D1'),
  65. (t.D2id, t.D1id, 'D2'),
  66. (t.D3id, t.D2id, 'D3')
  67. ) AS v (Nodeid, ParentNodeid, Header)
  68. ORDER BY
  69. t.D1id ASC,
  70. t.D2id ASC,
  71. t.D3id ASC
  72. ;
  73.  
  74. SELECT
  75. Nodeid,
  76. ParentNodeid,
  77. Header
  78. FROM
  79. (
  80. SELECT DISTINCT
  81. t.D1id,
  82. t.D2id,
  83. t.D3id,
  84. v.Nodeid,
  85. v.ParentNodeid,
  86. v.Header
  87. FROM
  88. dbo.atable AS t
  89. CROSS APPLY
  90. (
  91. VALUES
  92. (t.D1id, NULL , 'D1'),
  93. (t.D2id, t.D1id, 'D2'),
  94. (t.D3id, t.D2id, 'D3')
  95. ) AS v (Nodeid, ParentNodeid, Header)
  96. ) AS s
  97. ORDER BY
  98. D1id ASC,
  99. D2id ASC,
  100. D3id ASC
  101. ;
  102.  
  103. SELECT
  104. v.Nodeid,
  105. v.ParentNodeid,
  106. v.Header
  107. FROM
  108. dbo.atable AS t
  109. CROSS APPLY
  110. (
  111. VALUES
  112. (t.D1id, NULL , 'D1'),
  113. (t.D2id, t.D1id, 'D2'),
  114. (t.D3id, t.D2id, 'D3')
  115. ) AS v (Nodeid, ParentNodeid, Header)
  116. GROUP BY
  117. t.D1id,
  118. t.D2id,
  119. t.D3id,
  120. v.Nodeid,
  121. v.ParentNodeid,
  122. v.Header
  123. ORDER BY
  124. t.D1id ASC,
  125. t.D2id ASC,
  126. t.D3id ASC
  127. ;
  128.  
  129. select D3id,D2id,'D3'
  130. from mytable
  131. union
  132. select D2id,D1id,'D2'
  133. from mytable
  134. union
  135. select D1id, null,'D1'
  136. from mytable
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement