SQL 获取每组的小计

SQL Get subtotal in each group

早上好我所在的时区

我的目标是:

TYPE |  CODE | PRICE | QUANTITY
A       10      34       1
A       11      20       2
A       15      17       2
A       Total   71       5
B       13      14       1
B       10      24       2
B      Total    38       3

我使用的是 Sybase ASE 15.5 版,因此没有 ROLLUP 或 CUBE 运算符。 光标是我得到的唯一途径吗?

提前致谢 最好的问候

您可以将这样的 SQL 语句与 union all 一起使用(顺序对您的目标很重要):

select q.*
  from
  (
    select type, cast(code as char(5)) as code, price, quantity
      from tab
    union all
    select type, 'Total', sum(price), sum(quantity) 
      from tab
    group by type
  ) q
  order by type, code

我要在 SQL 服务器 中添加一个 Demo,但语法适用于两者。