当前位置: 代码迷 >> Sql Server >> 关于sql sever两个表的联合查询解决方法
  详细解决方案

关于sql sever两个表的联合查询解决方法

热度:89   发布时间:2016-04-24 09:38:38.0
关于sql sever两个表的联合查询
表A,字段:姓名   等等
表B,字段:姓名,课程名称,是否通过(1通过,0没有通过)

输出形式:
姓名    选课数   通过数

注:有可能有的学生没有选课,那表B就没有他的信息,那课程数目就是0,通过数目也是0.

实在是不会了,查的晕死了,就靠各位大虾了。拜托拜托!
------解决思路----------------------
select A.姓名,count(case when 课程名称 is null then 1 else 0 end) as 选课数,
  sum(isnull(是否通过,0)) as 通过数
from A
left join B on A.姓名=B.姓名
group by A.姓名

------解决思路----------------------
小调一下
SELECT
A.姓名
,COUNT(B.课程名称)选课数
,ISNULL(SUM(B.是否通过),0)通过数
FROM
A LEFT JOIN B ON A.姓名=B.姓名
GROUP BY
A.姓名
  相关解决方案