|
本帖最后由 wuxiang_123 于 2012-7-13 11:45 编辑
1、查询一人教一门以上课的老师:
- SELECT 老师 FROM
- (SELECT 语文老师 AS 老师,'语文' FROM [Sheet1$]
- UNION
- SELECT 数学老师,'数学' FROM [Sheet1$]
- UNION
- SELECT 英语老师,'英语' FROM [Sheet1$])
- GROUP BY 老师
- HAVING COUNT(老师)>=2
复制代码
2、查询同时教一个班级以上的老师
- SELECT 老师 FROM
- (SELECT 语文老师 AS 老师,班级 FROM [Sheet1$]
- UNION
- SELECT 数学老师,班级 FROM [Sheet1$]
- UNION
- SELECT 英语老师,班级 FROM [Sheet1$])
- GROUP BY 老师
- HAVING COUNT(老师)>=2
复制代码
3:查询任课最多的老师(这句有歧义,我的理解是相同科目只算一科,如在不同班级担任语文科老师,只算是担任一科)
- SELECT TOP 1 老师,count(老师) AS 科数 FROM
- (SELECT 语文老师 AS 老师,'语文' AS 科目 FROM [Sheet1$]
- UNION
- SELECT 数学老师,'数学' FROM [Sheet1$]
- UNION
- SELECT 英语老师,'英语' FROM [Sheet1$])
- GROUP BY 老师
- ORDER BY 2 DESC
复制代码
如果不要返回科数,可以这样:
- SELECT TOP 1 老师 FROM
- (SELECT 语文老师 AS 老师,'语文' AS 科目 FROM [Sheet1$]
- UNION
- SELECT 数学老师,'数学' FROM [Sheet1$]
- UNION
- SELECT 英语老师,'英语' FROM [Sheet1$])
- GROUP BY 老师
- ORDER BY count(老师) DESC
复制代码 如果第3问指的是返回任课次数最多的老师,可以这样:
- SELECT TOP 1 老师 FROM
- (SELECT 语文老师 AS 老师 FROM [Sheet1$]
- UNION ALL
- SELECT 数学老师 FROM [Sheet1$]
- UNION ALL
- SELECT 英语老师 FROM [Sheet1$])
- GROUP BY 老师
- ORDER BY count(老师) DESC
复制代码
|
|