這裏我試圖獲取如下數據(EXPECTED)
。SQL Server存儲過程中的SUM()
ID | Project | SC | PO | INV
---+---------+------+------+-----
1 | test1 | NULL | 1 | NULL
2 | test2 | NULL | NULL | NULL
但按我的存儲過程,我得到的輸出作爲
ID | Project | SC | PO | INV
---+---------+------+----+-----
1 | test1 | NULL | 1 | NULL
2 | test2 | NULL | 1 | NULL
也許結果從我的內心查詢顯示PO收到的Project test1
爲PO test2
了。哪些不應該發生。因爲項目'test1'出現在BudgetDetails
和Details
表中。
任何幫助球員糾正我寫的總和()查詢?
SELECT
BD.ID, BD.Project,
(SELECT SUM(Amount) AS SC
FROM Details (NOLOCK) a
INNER JOIN BudgetDetails (NOLOCK) b ON a.Project = b.Project
WHERE ProcurementStatus = 'SC' AND a.Project = b.Project) AS SC,
(SELECT SUM(Amount) as PO
FROM Details (NOLOCK) a
INNER JOIN BudgetDetails(NOLOCK) b ON a.Project = b.Project
WHERE ProcurementStatus = 'PO' AND a.Project = b.Project) AS PO,
(SELECT SUM(Amount) as INV
FROM Details (NOLOCK) a
INNER JOIN BudgetDetails(NOLOCK) b ON a.Project = b.Project
WHERE ProcurementStatus = 'INV' AND a.Project = b.Project) AS INV
FROM
BudgetDetails (NOLOCK) BD
WHERE
BD.Quarter = @Quarter AND BD.Year = @Year
GROUP BY
BD.ID, BD.Project
你也可以提供數據嗎? – Xedni
@Xedni輸入數據將季度和年份(2016年) – beginner
我的意思是「BudgetDetails」和「Details」表中的數據看起來像什麼。你的查詢有一些奇怪的地方,但不知道你的數據和源表是什麼樣的,這只是猜測。 – Xedni