powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SUM() OVER(). Почему из положительных значений получаются отрицательные?
3 сообщений из 3, страница 1 из 1
SUM() OVER(). Почему из положительных значений получаются отрицательные?
    #39772159
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разве считаются не все предыдущие суммы до текущей?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
DECLARE @Tbl TABLE (id INT IDENTITY(1, 1), _clientId INT, _date DATE, _sum INT);

INSERT @Tbl VALUES
  (1, '01.02.2019', 20), (1, '02.02.2019', 50), (1, '02.02.2019', 80), (1, '01.01.2019', 100), (1, '01.01.2019', 90), 
  (1, '01.01.2019', 40), (1, '01.01.2019', 30), (1, '03.02.2019', 70), (1, '07.02.2019', 60), (1, '07.02.2019', 10),
  (2, '12.02.2019', 180), (2, '12.02.2019', 190), (2, '13.02.2019', 130), (2, '01.02.2019', 200), (2, '02.02.2019', 140), 
  (2, '03.02.2019', 150), (2, '08.03.2019', 170), (2, '11.02.2019', 160), (2, '17.02.2019', 120), (2, '17.02.2019', 110);


SELECT _clientId,
       id,
       _date,
       _sum,        
      -SUM(_sum) OVER(PARTITION BY _clientId ORDER BY _date, id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS _RowsUnPredAndCurr 
  FROM @Tbl
  ORDER BY _clientId, _date, id;





_clientId id _date _sum _RowsUnPredAndCurr
----------- ----------- ---------- ----------- ------------------
1 4 2019-01-01 100 -100
1 5 2019-01-01 90 -190
1 6 2019-01-01 40 -230
1 7 2019-01-01 30 -260
1 1 2019-02-01 20 -280
1 2 2019-02-02 50 -330
1 3 2019-02-02 80 -410
1 8 2019-02-03 70 -480
1 9 2019-02-07 60 -540
1 10 2019-02-07 10 -550
2 14 2019-02-01 200 -200
2 15 2019-02-02 140 -340
2 16 2019-02-03 150 -490
2 18 2019-02-11 160 -650
2 11 2019-02-12 180 -830
2 12 2019-02-12 190 -1020
2 13 2019-02-13 130 -1150
2 19 2019-02-17 120 -1270
2 20 2019-02-17 110 -1380
2 17 2019-03-08 170 -1550

(строк обработано: 20)


----------------------------------------------------------------------------------
Microsoft SQL Server 2017 (RTM-CU10) (KB4342123) - 14.0.3037.1 (X64)
Jul 27 2018 09:40:27
Copyright (C) 2017 Microsoft Corporation
Enterprise Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: )
...
Рейтинг: 0 / 0
SUM() OVER(). Почему из положительных значений получаются отрицательные?
    #39772160
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_SQL,

так минус уберите
...
Рейтинг: 0 / 0
SUM() OVER(). Почему из положительных значений получаются отрицательные?
    #39772161
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

блин... Спасибо )))
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SUM() OVER(). Почему из положительных значений получаются отрицательные?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]