如何在一张表中添加两个查询?
Posted
技术标签:
【中文标题】如何在一张表中添加两个查询?【英文标题】:How to add two queries together in one table? 【发布时间】:2016-12-08 12:29:27 【问题描述】:我有两个 SQL 查询,我想在同一张表上加在一起。我想显示一个显示 JuniorCount、SeniorCount 和 DeptID 的表格。
现在,我有一些查询统计了具有部门级 ECE 的初级/高级,但我不确定如何将它们加在一起以显示在单独的列以及部门 ID 中。
SELECT COUNT(*) as JuniorCount
FROM (SELECT Class, DeptID FROM tblStudent WHERE Class = "Junior" AND DeptID = "ECE")
SELECT COUNT(*) as SeniorCount
FROM (SELECT Class, DeptID FROM tblStudent WHERE Class = "Senior" AND DeptID = "ECE")
【问题讨论】:
【参考方案1】:这是你需要的
SELECT DeptID,
sum(case when Class = 'Junior' then 1 else 0 end) as JuniorCount,
sum(case when Class = 'Senior' then 1 else 0 end) as SeniorCount
FROM
tblStudent WHERE DeptID = 'ECE'
Group by DeptID
在 MS 访问中
SELECT DeptID,
sum(IIF(Class = 'Junior' ,1,0)) as JuniorCount,
sum(IIF(Class = 'Senior' ,1,0)) as JuniorCount
FROM
tblStudent WHERE DeptID = 'ECE'
Group by DeptID
【讨论】:
抱歉,您如何在 Access 中执行此操作? 查看我编辑的代码。我也为 MS ACCESS 添加了代码 @jarlh 谢谢。修复它 @Madhivanan,逗号,即复数。【参考方案2】:您需要使用GROUP BY
来获取每个班级的总和。
SELECT Class, COUNT(*)
FROM tblStudent
WHERE Class IN('Junior', 'Senior')
AND AND DeptID = "ECE"
GROUP BY Class
(如果表中只有 Juniors 和 Seniors,则可以省略 CLASS IN
部分。)
【讨论】:
这不显示 DeptID,我需要将 JuniorCount 和 SeniorCount 作为单独的列而不是一列 @ChaCol,只需将 DeptID 添加到 SELECT 列表和 GROUP BY。 (仍然是单独的行。) 是的,但是如何将类分成列而不是行?就像我想要一列说 JuniorCount 和它下面的数字和第二列 SeniorCount 和它下面的数字以上是关于如何在一张表中添加两个查询?的主要内容,如果未能解决你的问题,请参考以下文章
oracle中,如何在一张表插入数据,使得插入数据的某些字段为其他表中的数据
两张表 在一张表中插入数据时要使用触发器也更新另一张 有错误