1
我有一個正確返回三列的查詢。我無法弄清楚如何僅使用LEFT JOIN的結果來添加一個僅包含SUM()數據的frouth列。如何從左連接的結果中選擇數據
這裏是返回正確的三列原始查詢:
select TITLES.NAME, COUNT(progskills.skill_no) as B, COUNT(ss.skill_no) as A, SUM(ss.score) as C FROM TITLES inner join progskills on progskills.program_no = titles.title_no left join STUSKILLS ss on progskills.SKILL_NO = ss.skill_no and ss.STUDENT_NO = '1234' where progskills.program_no in (select progskills.program_no from PROGSKILLS, STUSKILLS where progskills.SKILL_NO = stuskills.SKILL_NO and stuskills.SCORE != 0 and stuskills.STUDENT_NO = '1234') group by titles.name
其正確返回以下結果:
B A C Database Administration 4 1 50 Implementation Specialist 4 1 50 Office Manager 4 2 130 Registrar 4 2 130 Scheduler 4 3 130 Scheduling Assistant 2 1 50 Support Systems Manager 4 2 130
我所試圖做的,在第四列中,將基於ST上左連接的結果從PROGSKILLS表中SUM一個名爲MINSCORE的列USKILLS。換句話說,我只想總結那些左連接引用的元素。
我已經嘗試了很多嘗試,但似乎都失敗語法或導致其他數據列結果相乘。
我最好的猜測,是下面的添加到我的主要SELECT子句...
SUM(select ps.minscore from PROGSKILLS ps where ps.SKILL_NO = ss.skill_no) as D
但SQL抱怨說,SUM(SELECT語法錯誤和ss.skill_no不能綁定。
我知道,SUM(SELECT是可以接受的。
我意識到這是一個非常複雜的查詢,但我希望有人能幫助我弄清楚如何讓基於在「A」列數的元素PROGSKILLS數據。
提前...謝謝!
是的,它做到了。男人,我喜歡stackoverflow(和所有的貢獻者) – 2011-03-01 20:48:29