add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
8 rows affected
OrderStatus CustomerID OrderNbr TotalQty Prod01 Quantity01 Prod02 Quantity02 Prod03 Quantity03 Prod04 Quantity04 Prod05 Quantity05 Prod06 Quantity06 Prod07 Quantity07 Prod08 Quantity08 Ratio01 Ratio02 Ratio03 Ratio04 Ratio05 Ratio06 Ratio07 Ratio08
Pending 1 1 360 Product A 10 Product B 20 Product C 30 Product D 40 Product E 50 Product F 60 Product G 70 Product H 80 0 0 0 0 0 0 0 0
(No column name)
max(CASE WHEN o.LoadNbr = 1 THEN o.Product ELSE '' END) AS Product1, max(CASE WHEN o.LoadNbr = 1 THEN o.Quantity ELSE 0 END) AS Quantity1, max(CASE WHEN o.LoadNbr = 1 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio1, max(CASE WHEN o.LoadNbr = 2 THEN o.Product ELSE '' END) AS Product2, max(CASE WHEN o.LoadNbr = 2 THEN o.Quantity ELSE 0 END) AS Quantity2, max(CASE WHEN o.LoadNbr = 2 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio2, max(CASE WHEN o.LoadNbr = 3 THEN o.Product ELSE '' END) AS Product3, max(CASE WHEN o.LoadNbr = 3 THEN o.Quantity ELSE 0 END) AS Quantity3, max(CASE WHEN o.LoadNbr = 3 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio3, max(CASE WHEN o.LoadNbr = 4 THEN o.Product ELSE '' END) AS Product4, max(CASE WHEN o.LoadNbr = 4 THEN o.Quantity ELSE 0 END) AS Quantity4, max(CASE WHEN o.LoadNbr = 4 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio4, max(CASE WHEN o.LoadNbr = 5 THEN o.Product ELSE '' END) AS Product5, max(CASE WHEN o.LoadNbr = 5 THEN o.Quantity ELSE 0 END) AS Quantity5, max(CASE WHEN o.LoadNbr = 5 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio5, max(CASE WHEN o.LoadNbr = 6 THEN o.Product ELSE '' END) AS Product6, max(CASE WHEN o.LoadNbr = 6 THEN o.Quantity ELSE 0 END) AS Quantity6, max(CASE WHEN o.LoadNbr = 6 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio6, max(CASE WHEN o.LoadNbr = 7 THEN o.Product ELSE '' END) AS Product7, max(CASE WHEN o.LoadNbr = 7 THEN o.Quantity ELSE 0 END) AS Quantity7, max(CASE WHEN o.LoadNbr = 7 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio7, max(CASE WHEN o.LoadNbr = 8 THEN o.Product ELSE '' END) AS Product8, max(CASE WHEN o.LoadNbr = 8 THEN o.Quantity ELSE 0 END) AS Quantity8, max(CASE WHEN o.LoadNbr = 8 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio8
(No column name)
SELECT OrderStatus
    , CustomerID
    , OrderNbr
    , ca.TotalQty
    , max(CASE WHEN o.LoadNbr = 1 THEN o.Product ELSE '' END) AS Product1, max(CASE WHEN o.LoadNbr = 1 THEN o.Quantity ELSE 0 END) AS Quantity1, max(CASE WHEN o.LoadNbr = 1 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio1, max(CASE WHEN o.LoadNbr = 2 THEN o.Product ELSE '' END) AS Product2, max(CASE WHEN o.LoadNbr = 2 THEN o.Quantity ELSE 0 END) AS Quantity2, max(CASE WHEN o.LoadNbr = 2 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio2, max(CASE WHEN o.LoadNbr = 3 THEN o.Product ELSE '' END) AS Product3, max(CASE WHEN o.LoadNbr = 3 THEN o.Quantity ELSE 0 END) AS Quantity3, max(CASE WHEN o.LoadNbr = 3 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio3, max(CASE WHEN o.LoadNbr = 4 THEN o.Product ELSE '' END) AS Product4, max(CASE WHEN o.LoadNbr = 4 THEN o.Quantity ELSE 0 END) AS Quantity4, max(CASE WHEN o.LoadNbr = 4 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio4, max(CASE WHEN o.LoadNbr = 5 THEN o.Product ELSE '' END) AS Product5, max(CASE WHEN o.LoadNbr = 5 THEN o.Quantity ELSE 0 END) AS Quantity5, max(CASE WHEN o.LoadNbr = 5 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio5, max(CASE WHEN o.LoadNbr = 6 THEN o.Product ELSE '' END) AS Product6, max(CASE WHEN o.LoadNbr = 6 THEN o.Quantity ELSE 0 END) AS Quantity6, max(CASE WHEN o.LoadNbr = 6 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio6, max(CASE WHEN o.LoadNbr = 7 THEN o.Product ELSE '' END) AS Product7, max(CASE WHEN o.LoadNbr = 7 THEN o.Quantity ELSE 0 END) AS Quantity7, max(CASE WHEN o.LoadNbr = 7 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio7, max(CASE WHEN o.LoadNbr = 8 THEN o.Product ELSE '' END) AS Product8, max(CASE WHEN o.LoadNbr = 8 THEN o.Quantity ELSE 0 END) AS Quantity8, max(CASE WHEN o.LoadNbr = 8 THEN round(o.Quantity *100.0 / ca.TotalQty,2) ELSE 0 END) AS Ratio8
FROM Orders AS O
CROSS APPLY (
    SELECT SUM(q.Quantity) AS TotalQty FROM Orders AS q
    WHERE q.OrderNbr = o.OrderNbr
    ) AS ca
GROUP BY OrderStatus
    , CustomerID
    , OrderNbr
    , ca.TotalQty
OrderStatus CustomerID OrderNbr TotalQty Product1 Quantity1 Ratio1 Product2 Quantity2 Ratio2 Product3 Quantity3 Ratio3 Product4 Quantity4 Ratio4 Product5 Quantity5 Ratio5 Product6 Quantity6 Ratio6 Product7 Quantity7 Ratio7 Product8 Quantity8 Ratio8
Pending 1 1 360 Product A 10 2.780000000000 Product B 20 5.560000000000 Product C 30 8.330000000000 Product D 40 11.110000000000 Product E 50 13.890000000000 Product F 60 16.670000000000 Product G 70 19.440000000000 Product H 80 22.220000000000
OrderStatus CustomerID OrderNbr Product LoadNbr1 LoadNbr2 LoadNbr3 LoadNbr4 LoadNbr5 LoadNbr6 LoadNbr7 LoadNbr8
Pending 1 1 Product A 10 null null null null null null null
Pending 1 1 Product B null 20 null null null null null null
Pending 1 1 Product C null null 30 null null null null null
Pending 1 1 Product D null null null 40 null null null null
Pending 1 1 Product E null null null null 50 null null null
Pending 1 1 Product F null null null null null 60 null null
Pending 1 1 Product G null null null null null null 70 null
Pending 1 1 Product H null null null null null null null 80