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