這可以幫助,如果我理解正確:
SELECT m.id,m.id_depend,m.Item,m.[values] [Current Values]
,CASE WHEN m.id_depend = 0 AND NOT EXISTS(SELECT 1 FROM mytable cor WHERE cor.id_depend = m.id)
THEN m.[values]
ELSE COALESCE((SELECT SUM(mt.[values]) FROM mytable mt WHERE mt.Item = m.Item AND mt.id < m.id)+m.[values],0)
END [Values Required]
FROM mytable m
還有我的查詢一起玩:
CREATE TABLE #mytable (id BIGINT, id_depend BIGINT, Item VARCHAR(50), [values] DECIMAL(23,10))
INSERT INTO #mytable (id,id_depend,Item,[values])VALUES(685690,0,'1',216),(685690,0,'2',108)
,(691282,685690,'1',-216),(691282,685690,'2',-108)
,(691297,685690,'1',324),(691297,685690,'2',162)
,(691371,0,'1',100),(691371,0,'2',200),(691371,0,'3',300)
SELECT m.id,m.id_depend,m.Item,m.[values] [Current Values]
FROM #mytable m
SELECT m.id,m.id_depend,m.Item,m.[values] [Current Values]
,CASE WHEN m.id_depend = 0 AND NOT EXISTS(SELECT 1 FROM #mytable cor WHERE cor.id_depend = m.id)
THEN m.[values]
ELSE COALESCE((SELECT SUM(mt.[values]) FROM #mytable mt WHERE mt.Item = m.Item AND mt.id < m.id)+m.[values],0)
END [Values Required]
FROM #mytable m
DROP TABLE #mytable
請讓我知道如果您有任何疑問。
我認爲這將起作用。謝謝 – 2015-02-25 00:24:14