我期望在某些條件下獲得某列的總和,即取決於某列是具有子任務的父母,還是僅具有沒有子任務的父母。如果任務是具有子任務的父項,則只需要子任務的「完成」列的總和。如果一項任務只是一個家長,我只想要父母的完整列的總和。 - 但只限於任務(父母或子女)都與同一用戶有關。SQL - 根據父母或子女是否計數列
E.g.在下面的示例表:
UserID | Parent_TaskID | TaskID | Complete
------ | ------------- | ------ | --------
435 | 149329 | 161280 | 1
435 | 149330 | 210717 | 2
435 | 149330 | 228100 | 3
435 | 156991 | 149330 | 1
169 | 458764 | 546540 | 2
169 | 456842 | 546541 | 2
169 | 456842 | 458764 | 0
的TaskID 149330是兒童210717 & 228100父因此計數爲該列於149330是5,即忽略對於親本完整的列。 161280是父母,因此只會返回0。 546540是458764的子任務,所以458764將有2
一筆所以我覺得我的這個結果應該是什麼樣子:
TaskID | Sum_complete
------- | ------------
161280 | 1
149330 | 5
546541 | 2
458764 | 2
任何想法如何可以這樣做?
我創建了一個表,在SqlFiddle http://sqlfiddle.com/#!2/8295f
感謝,
我可以用得到父母如下:
select t.taskID, t.Parent_taskID, t.userID, t.complete
from task t
where t.Parent_taskID not in (
select tp.taskID
from task tp
where tp.userID = t.userID
)
[你有什麼試過](http://whathaveyoutried.com)? – HABO
你用tsql標記了你的問題,但你的小提琴是用於MySQL的。你使用的是什麼RDBMS和版本? – Lamak
哦,對不起,我正在使用SQL Server ... 2005 – thegunner