Advertisement
Guest User

Untitled

a guest
Apr 24th, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. Entity |OrderTime |City |ProductType |...
  2. -------------------------------------------------------------------
  3. AlexKlar | | |
  4.  SubPack |17:00 |London |
  5.  Mango | | |Fruit |
  6.  WelcomePack |15:00 |London |
  7.  Apple | |
  8.  Banana | | |Fruit |
  9. AnnaKlar | | |
  10.  WelcomePack |16:00 |London |
  11.  Apple | | |Fruit |
  12. JuliaKlar | | |
  13.  PremiumPack |18:00 |London |
  14.  Lychee | | |Fruit |
  15.  SubPack |18:30 |London |
  16.  Mango | | |Fruit |
  17.  WelcomePack |15:00 |London |
  18.  Apple | | |Fruit |
  19.  Banana | | |Fruit |
  20.  
  21. SELECT
  22. CONVERT(VARCHAR,PersonID) AS id,
  23. 0 AS level,
  24. 'false' AS isLeaf,
  25. 'null' AS parent,
  26. FullName AS entity,
  27. '' AS OrderTime,
  28. '' AS City,
  29. '' AS Active,
  30. '' AS ProductType,
  31. '' AS Price
  32. from Persons
  33. UNION ALL
  34. SELECT
  35. CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) AS id,
  36. 1 AS level,
  37. 'false' AS isLeaf,
  38. CONVERT(VARCHAR,PersonID) AS parent,
  39. OrderName AS entity,
  40. COALESCE(CAST(OrderTime AS VARCHAR(5)),'') AS OrderTime,
  41. City,
  42. Active,
  43. '' AS ProductType,
  44. '' AS Price
  45. from Orders
  46. UNION ALL
  47. SELECT
  48. CONVERT(VARCHAR,per.PersonID) + '>' + CONVERT(VARCHAR,ord.OrderID) + '>' + CONVERT(VARCHAR,prod.ProductID) AS id,
  49. 2 AS level,
  50. 'true' AS isLeaf,
  51. CONVERT(VARCHAR,per.PersonID) + '>' + CONVERT(VARCHAR,ord.OrderID) AS parent,
  52. ProductName AS entity,
  53. '' AS OrderTime,
  54. '' AS City,
  55. so.Completed AS Active,
  56. ProductType,
  57. COALESCE(CONVERT(VARCHAR,Price),'') AS Price
  58. from SubmittedOrders so
  59. INNER JOIN Orders ord ON ord.OrderID = so.OrderID
  60. INNER JOIN Persons per ON per.PersonID = ord.PersonID
  61. INNER JOIN Products prod ON prod.ProductID = so.ProductID
  62. Order by id
  63.  
  64. ;WITH
  65. CTE_All
  66. AS
  67. (
  68. SELECT
  69. per.PersonID,
  70. per.FullName,
  71. per.PersonRow,
  72. ord.OrderID,
  73. ord.OrderName,
  74. ord.OrderTime,
  75. ord.City,
  76. ord.Active,
  77. ord.OrderRow,
  78. prod.ProductID,
  79. prod.ProductName,
  80. prod.ProductType,
  81. prod.Price,
  82. prod.ProductRow,
  83. so.Completed
  84. from #SubmittedOrders so
  85. LEFT JOIN (select *, row_number() over (order by OrderName) OrderRow from #Orders) ord
  86. ON ord.OrderID = so.OrderID
  87. LEFT JOIN (select *, row_number() over (order by FullName) PersonRow from #Persons) per
  88. ON per.PersonID = ord.PersonID
  89. LEFT JOIN (select *, row_number() over (order by ProductName) ProductRow from #Products) prod
  90. ON prod.ProductID = so.ProductID
  91. )
  92. SELECT
  93. CONVERT(VARCHAR,PersonID) AS id,
  94. 0 AS level,
  95. 'false' AS isLeaf,
  96. 'null' AS parent,
  97. FullName AS entity,
  98. '' AS OrderTime,
  99. '' AS City,
  100. '' AS Active,
  101. '' AS ProductType,
  102. '' AS Price,
  103. PersonRow,
  104. OrderRow,
  105. ProductRow
  106. from CTE_All Persons
  107. UNION ALL
  108. SELECT
  109. CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) AS id,
  110. 1 AS level,
  111. 'false' AS isLeaf,
  112. CONVERT(VARCHAR,PersonID) AS parent,
  113. OrderName AS entity,
  114. COALESCE(CAST(OrderTime AS VARCHAR(5)),'') AS OrderTime,
  115. City,
  116. Active,
  117. '' AS ProductType,
  118. '' AS Price,
  119. PersonRow,
  120. OrderRow,
  121. ProductRow
  122. from CTE_All Orders
  123. UNION ALL
  124. SELECT
  125. CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) + '>' + CONVERT(VARCHAR,ProductID) AS id,
  126. 2 AS level,
  127. 'true' AS isLeaf,
  128. CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) AS parent,
  129. ProductName AS entity,
  130. '' AS OrderTime,
  131. '' AS City,
  132. Completed AS Active,
  133. ProductType,
  134. COALESCE(CONVERT(VARCHAR,Price),'') AS Price,
  135. PersonRow,
  136. OrderRow,
  137. ProductRow
  138. from CTE_All
  139. Order by PersonRow, OrderRow, ProductRow
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement