我被看似简单的问题所困扰。我们有下表。
ID----收入--年偏移--收入乘偏移-11000 1空 2500 1空 3400 1空 4 0 1空 5 2000 2空 6 0 2空 7400 2空
我想弄清楚该怎么做,就是将“收入偏移”列中的所有“收入”列加起来,然后放在“收入与偏移量列”的第一行中。令人敬畏的是,如果“按收入划分的收入”列在第1行中的值为1900,在第5行中的值为2400,而其余行则保持不变。
我知道这听起来像是一个简单的问题。但是我已经尝试了Window函数,Row_number(),SELF连接表,并且每个表都可以解决,但是很难将它们放在一起。
预先感谢,乔治
DECLARE @yourTable TABLE (ID INT,Income INT,[Years Offset] INT,[Income By Offset] INT NULL);
INSERT INTO @yourTable
VALUES (1,1000,1,NULL),
(2,500,1,NULL),
(3,400,1,NULL),
(4,0,1,NULL),
(5,2000,2,NULL),
(6,0,2,NULL),
(7,400,2,NULL);
SELECT ID,
Income,
[Years Offset],
CASE
WHEN ID = MIN(ID) OVER (PARTITION BY [Years Offset])
THEN SUM(Income) OVER (PARTITION BY [Years Offset])
ELSE [Income By Offset]
END AS [Income By Offset]
FROM @yourTable
ID Income Years Offset Income By Offset
----------- ----------- ------------ ----------------
1 1000 1 1900
2 500 1 NULL
3 400 1 NULL
4 0 1 NULL
5 2000 2 2400
6 0 2 NULL
7 400 2 NULL
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句