I am a little confused out a CTE works. I need to convert my statement from a rollup with a UNION to a CTE… but the CTE is a bit confusing me.
Any Ideas how to approach this?
SELECT ProductName, Sum ((ItemPrice - DiscountAmount)*Quantity) as ProductTotal FROM Products JOIN OrderItems ON Products.ProductID = OrderItems.productID GROUP BY ProductName WITH ROLLUP Order By ProductTotal
Advertisement
Answer
You can express this using a CTE as:
with cte as ( select ProductName, Sum((ItemPrice - DiscountAmount)*Quantity) as ProductTotal from Products p join OrderItems oi on p.ProductID = oi.productID group by ProductName ) select * from cte union all select null, sum(producttotal) from cte order by producttotal;