2016-12-08 2 views
0

У меня есть два SQL-запроса, которые я хочу добавить вместе в одну таблицу. Я хочу отобразить таблицу, которая показывает JuniorCount, SeniorCount и DeptID.Как добавить два запроса вместе в одну таблицу?

Прямо сейчас у меня есть запросы, которые подсчитывают младших/старших классов класса DE, но я не уверен, как их добавлять вместе, чтобы отображать их в отдельных столбцах, а также в дефите.

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") 

ответ

6

Это то, что вам нужно

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 ACCESS

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 
+0

Извините, как вы это делаете в Access? – ChaCol

+0

Опечатки, отсутствующие запятые ... – jarlh

+0

См. Мой отредактированный код. Я добавил код для MS ACCESS, а также – Madhivanan

2

Чтобы получить сумму за класс, вам необходимо использовать GROUP BY.

SELECT Class, COUNT(*) 
FROM tblStudent 
WHERE Class IN('Junior', 'Senior') 
AND AND DeptID = "ECE" 
GROUP BY Class 

(CLASS IN часть может быть опущена, если только юниоры и старшие в таблице.)

+0

Это не отображает DeptID, и мне нужны JuniorCount и SeniorCount как отдельные столбцы, а не один столбец – ChaCol

+0

@ChaCol, просто добавьте DeptID в список SELECT и GROUP BY. (Все еще отдельные строки.) – jarlh

+0

Да, но как я могу отделить класс от столбцов вместо строк? Как и я хочу колонку с надписью JuniorCount с номером под ним и второй столбец SeniorCount с номером под ним – ChaCol

Смежные вопросы