Баланс текущей строки на основе критериев двух полей - PullRequest
0 голосов
/ 14 мая 2019

Если у меня есть таблица, подобная этой:

DATE        CATEGORY    QTY      SUM
01/01/2019     B         2       true
02/01/2019     B         3       true
03/01/2019     A         1       false
04/01/2019     B         3       true
05/01/2019     A         3       true
06/01/2019     A         2       true

Мне нужно добавить поле qty по категории, где столбец «sum» равен true, сортировка по полю «date».Как получить следующий результат, используя CTE в SQL Server

Запрос результатов:

DATE        CATEGORY    QTY_TOTAL   SUM
01/01/2019     B           2        true
02/01/2019     B           5        true
03/01/2019     A           0        false
04/01/2019     B           8        true
05/01/2019     A           3        true
06/01/2019     A           5        true

PS: я искал похожий вопрос, но не нашел ни одного, который мог бы полностью прояснить мои сомнения.

Заранее спасибо!

1 Ответ

1 голос
/ 14 мая 2019

Вы хотите совокупную сумму:

select t.*, sum(case when [sum] = 'true' then qty else 0 end) over (partition by category order by [date]) as QTY_TOTAL
from table t
order by [date];
...