我試圖讓兩個不同的列來自同一個表的款項,按用戶進行分組的總和。問題是,我必須找到一筆款項,需要一些額外的參數。MySQL的 - 通過ID來嵌套查詢
表1:
userid, fname, lname
表2:
assigned_to (is = to userid from other table),
est_hours (est = Estimate hours),
act_hours (act = Actual Hours),
completed_date
我只希望從條目完成(通過在列completed_date包含一個值,該已標記的est_hours act_hours將空白,如果completed_date爲空)
我查詢的問題是,我不是爲act_hours和est_hours的總和得到正確的價值觀。我認爲它與嵌套查詢不匹配正確的用戶ID有關。 查詢:
SELECT userid,
fname,
lname,
SUM(act_hours)+(SELECT SUM(est_hours)
from Table2
WHERE completed_date IS NULL) AS total_hours
FROM TABLE2,
TABLE1
WHERE TABLE1.userid = TABLE2.assigned_to
GROUP BY userid;
我知道我需要以某種方式從外部查詢通過用戶ID,進入內部查詢,使SUM(est_hours)僅獲得該用戶的總和。
我一直兜兜我的腦袋疼,所以任何幫助表示讚賞!
-1,有效語法是,但結果是不一樣的,因爲'act_hours'不應由'那裏completed_date來實現IS NULL' – Johan
犯規相當的工作。您的查詢使用est_hours和act_hours上的completed_date參數爲null。但是,如果act_hours被標記爲已完成並且日期已輸入completed_date,則它只會包含大於零的值。 – JimmyJammed
@JamesHickman現在(檢查我的更新)? – Icarus