У меня есть таблица, для которой необходимо вычислить некоторые значения.
id branch coa mtu slid db cr date SumBySLID
1 0001 XYZ IDR 123 1000 300 2016-01-01 800
2 0001 XYZ IDR 123 400 500 2017-03-01 800
3 0001 XYZ IDR 123 700 500 2011-03-01 800
4 0001 XYZ IDR 1111 400 500 2017-03-01 6400
5 0001 XYZ IDR 1111 7000 500 2017-03-01 6400
Столбец SUMbySLID генерируется с помощью SUM (db-cd) и группируется по филиалам, coa, mtu, slid.На самом деле я могу получить значения SUMbySLID с помощью GROUP By Query.Я попытался использовать функцию OVER PARTION BY, чтобы я мог показать все данные в столбце SUMbySLID.Но когда я добавил фильтр date = '2017/01/01', данные с ID = 2 показывают, что SumBySLID равен -100.
SELECT TOP 1000 [id]
,[branch]
,[coa]
,[mtu]
,[slid]
,[db]
,[cr]
,date
,SUM(db-cr) OVER(PARTITION BY branch,coa,mtu,slid)
FROM [Testing].[dbo].[Tbl_Test_COA]
WHERE date='2017-03-01'
Я хочу, чтобы номер идентификатора 2 по-прежнему показывал SumBySLID = 800 даже посленекоторый фильтр с предложением WHERE.Как это решить?Заранее спасибо