求:两张关联表统计的SQL
求:两张关联表统计的SQL
我有两张表
表A字段: id 学习专业
1 理工
2 文学
3 医学
表B字段: id 学生姓名 年级 学习专业的ID
11 学生A 1 1
12 学生B 3 2
13 学生C 2 2
14 学生D 2 1
15 学生E 3 3
......
表A的ID与表B的“学习专业的ID”关联,
我想得到的统计结果是(按学习专业列出):
理工 该专业学生总人数 其中1年级人数 2年级人数 3年级人数
文学 该专业学生总人数 其中1年级人数 2年级人数 3年级人数
医学 该专业学生总人数 其中1年级人数 2年级人数 3年级人数
------解决方案--------------------
SELECT A.学习专业,COUNT(*) AS 该专业学生总人数,
SUM(CASE WHEN B.年级=1 THEN 1 ELSE 0 END) AS [1年级人数],
SUM(CASE WHEN B.年级=2 THEN 1 ELSE 0 END) AS [2年级人数],
SUM(CASE WHEN B.年级=3 THEN 1 ELSE 0 END) AS [3年级人数]
FROM 表A AS A,表B AS B
WHERE A.ID=B.学习专业的ID
GROUP BY A.学习专业