SQL Получить промежуточный итог в каждой группе - PullRequest
0 голосов
/ 27 ноября 2018

Доброе утро в моем часовом поясе

Моя цель:

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.Является ли курсор единственным способом, который я получил?

Заранее спасибо С наилучшими пожеланиями

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете использовать такой оператор 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 Server , но синтаксис работает для обоих.

...