Create Table Orders ([Order No] INT, OrdItem CHAR(1), Quantity int, Price int)
INSERT INTO Orders VALUES(1,'A',2,260),(1,'B',1,0),(1,'C',1,150),(2,'A',3,960),(2,'B',1,0)
Create table Lookups (OrdItem1 CHAR(1),OrdItem2 CHAR(1),[Output] CHAR(1))
INSERT INTO Lookups VALUES('A','B','D')
SELECT [Order No],ISNULL(Output, o.OrdItem) AS OrdItem,MAX(Quantity) AS Quantity,MAX(Price) AS Price
FROM Orders o
LEFT JOIN (SELECT [Output],OrdItem
FROM Lookups
CROSS APPLY ( VALUES (OrdItem1), (OrdItem2)) d(OrdItem)) t
ON o.OrdItem = t.OrdItem
GROUP BY [Order No],ISNULL(Output, o.OrdItem)
ORDER BY [Order No],OrdItem DESC
Drop table Lookups
Drop table Orders
Friday, September 27, 2013
Mapping from multiple row items to single row
Labels:
big loop My VS C#
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment