【问题标题】:Add total to group将总计添加到组
【发布时间】:2010-12-29 21:35:16
【问题描述】:

我有一个订单详情表。

我想要做的是创建 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

谢谢。

【问题讨论】:

    标签: sql sql-server-2005 group-by sum


    【解决方案1】:

    额外的列很简单,只需在定义为两个现有属性的乘积的 sql 中创建另一个输出列

      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
    

    【讨论】:

      【解决方案2】:

      我不确定在单个 SQL 中完成所有这些是否是个好主意,但您可以尝试使用联合:

      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
      

      虽然没试过。

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-13
        • 2015-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多