2016-12-08 19 views
0

同じテーブルに一緒に追加したいSQLクエリが2つあります。 JuniorCount、SeniorCount、およびDeptIDを表示するテーブルを表示する必要があります。2つのクエリを1つのテーブルに追加するにはどうすればよいですか?

は、今私は、DEPTクラスECEのシニア後輩を/カウントクエリを持っているが、私は別の列だけでなく、DEPTIDに表示するために一緒にそれらを追加するかどうかはわかりません。

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(IIF(Class = 'Junior' ,1,0)) as JuniorCount, 
sum(IIF(Class = 'Senior' ,1,0)) as JuniorCount 
FROM 
tblStudent WHERE DeptID = 'ECE' 
Group by DeptID 
+0

アクセスでこれをどうやってやっていますか? – ChaCol

+0

Typos、missing commas ... – 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一部を省略することができます。)これは、あなたがMS Accessで

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 

を必要とするものである

+0

これはDeptIDを表示せず、JuniorCountとSeniorCountが1つの列ではない別々の列として必要です – ChaCol

+0

@ChaColでは、SELECTリストとGROUP BYにDeptIDを追加するだけです。 (まだ別の行です) – jarlh

+0

ええ、クラスを行ではなく列に分けるにはどうしたらいいですか?私はJuniorCountとその下の数字を持つ列とその下の番号を持つ2番目の列SeniorCountを持っています。 – ChaCol

関連する問題