我有一份订单明细表。
我想要做的是创建1个查询以显示
OrderNumber | SKU | QTY | Price | Line Total |
1 SKU1 1 10.00 10.00
1 ---- 0 0.00 10.00
2 SKU1 2 10.00 20.00
2 SKU2 3 1.50 4.50
2 ---- 0 0.00 24.50
我的意思是我需要为每个添加另一行 订单总额用于导出到文本文件。
我有SQL Server 2005
谢谢。
答案 0 :(得分:4)
额外列很简单,只需在sql中创建另一个输出列,该列定义为两个exsting属性的乘积
Select OrderNumber, SKU, QTY, Price, Qty * Price as LineTotal
From Table ...
第二部分,添加小计行,可以使用关键字Rollup
或通过与汇总查询联合来完成
Select OrderNumber, SKU, QTY, Price,
Qty * Price as LineTotal
From Table
Union
Select OrderNumber, null SKU, null Qty, null Price,
Sum( Qty * Price ) as LineTotal
From Table
Group By OrderNumber
Order By OrderNumber, Case When SKU Is Null then 1 Else 0 End
答案 1 :(得分:1)
我不确定在单个SQL中做这一切是不是一个好主意,但你可以尝试使用union:
SELECT *
FROM (
SELECT ordernumber, sku, qty, price, qty*price line_total
FROM order_details
UNION
SELECT ordernumber, '---' sku, 0 qty, 0 price, SUM(qty*price)
FROM order_details
GROUP BY ordernumber
)
ORDER BY ordernumber, sku
虽然没试过。