Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Entity |OrderTime |City |ProductType |...
- -------------------------------------------------------------------
- AlexKlar | | |
- SubPack |17:00 |London |
- Mango | | |Fruit |
- WelcomePack |15:00 |London |
- Apple | |
- Banana | | |Fruit |
- AnnaKlar | | |
- WelcomePack |16:00 |London |
- Apple | | |Fruit |
- JuliaKlar | | |
- PremiumPack |18:00 |London |
- Lychee | | |Fruit |
- SubPack |18:30 |London |
- Mango | | |Fruit |
- WelcomePack |15:00 |London |
- Apple | | |Fruit |
- Banana | | |Fruit |
- SELECT
- CONVERT(VARCHAR,PersonID) AS id,
- 0 AS level,
- 'false' AS isLeaf,
- 'null' AS parent,
- FullName AS entity,
- '' AS OrderTime,
- '' AS City,
- '' AS Active,
- '' AS ProductType,
- '' AS Price
- from Persons
- UNION ALL
- SELECT
- CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) AS id,
- 1 AS level,
- 'false' AS isLeaf,
- CONVERT(VARCHAR,PersonID) AS parent,
- OrderName AS entity,
- COALESCE(CAST(OrderTime AS VARCHAR(5)),'') AS OrderTime,
- City,
- Active,
- '' AS ProductType,
- '' AS Price
- from Orders
- UNION ALL
- SELECT
- CONVERT(VARCHAR,per.PersonID) + '>' + CONVERT(VARCHAR,ord.OrderID) + '>' + CONVERT(VARCHAR,prod.ProductID) AS id,
- 2 AS level,
- 'true' AS isLeaf,
- CONVERT(VARCHAR,per.PersonID) + '>' + CONVERT(VARCHAR,ord.OrderID) AS parent,
- ProductName AS entity,
- '' AS OrderTime,
- '' AS City,
- so.Completed AS Active,
- ProductType,
- COALESCE(CONVERT(VARCHAR,Price),'') AS Price
- from SubmittedOrders so
- INNER JOIN Orders ord ON ord.OrderID = so.OrderID
- INNER JOIN Persons per ON per.PersonID = ord.PersonID
- INNER JOIN Products prod ON prod.ProductID = so.ProductID
- Order by id
- ;WITH
- CTE_All
- AS
- (
- SELECT
- per.PersonID,
- per.FullName,
- per.PersonRow,
- ord.OrderID,
- ord.OrderName,
- ord.OrderTime,
- ord.City,
- ord.Active,
- ord.OrderRow,
- prod.ProductID,
- prod.ProductName,
- prod.ProductType,
- prod.Price,
- prod.ProductRow,
- so.Completed
- from #SubmittedOrders so
- LEFT JOIN (select *, row_number() over (order by OrderName) OrderRow from #Orders) ord
- ON ord.OrderID = so.OrderID
- LEFT JOIN (select *, row_number() over (order by FullName) PersonRow from #Persons) per
- ON per.PersonID = ord.PersonID
- LEFT JOIN (select *, row_number() over (order by ProductName) ProductRow from #Products) prod
- ON prod.ProductID = so.ProductID
- )
- SELECT
- CONVERT(VARCHAR,PersonID) AS id,
- 0 AS level,
- 'false' AS isLeaf,
- 'null' AS parent,
- FullName AS entity,
- '' AS OrderTime,
- '' AS City,
- '' AS Active,
- '' AS ProductType,
- '' AS Price,
- PersonRow,
- OrderRow,
- ProductRow
- from CTE_All Persons
- UNION ALL
- SELECT
- CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) AS id,
- 1 AS level,
- 'false' AS isLeaf,
- CONVERT(VARCHAR,PersonID) AS parent,
- OrderName AS entity,
- COALESCE(CAST(OrderTime AS VARCHAR(5)),'') AS OrderTime,
- City,
- Active,
- '' AS ProductType,
- '' AS Price,
- PersonRow,
- OrderRow,
- ProductRow
- from CTE_All Orders
- UNION ALL
- SELECT
- CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) + '>' + CONVERT(VARCHAR,ProductID) AS id,
- 2 AS level,
- 'true' AS isLeaf,
- CONVERT(VARCHAR,PersonID) + '>' + CONVERT(VARCHAR,OrderID) AS parent,
- ProductName AS entity,
- '' AS OrderTime,
- '' AS City,
- Completed AS Active,
- ProductType,
- COALESCE(CONVERT(VARCHAR,Price),'') AS Price,
- PersonRow,
- OrderRow,
- ProductRow
- from CTE_All
- Order by PersonRow, OrderRow, ProductRow
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement