2016-12-08 3 views
0

Ich habe zwei SQL-Abfragen, die ich in derselben Tabelle hinzufügen möchte. Ich möchte eine Tabelle anzeigen, die JuniorCount, SeniorCount und DeptID anzeigt.Wie fügen Sie zwei Abfragen in einer Tabelle zusammen?

Im Moment habe ich die Abfragen, die die Juniors/Senior mit Dept Klasse ECE zählen, aber ich bin mir nicht sicher, wie Sie sie zusammenfügen, um in separaten Spalten sowie die Deptid anzuzeigen.

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

Antwort

6

Dies ist, was Sie brauchen

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 

In 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

Sorry, wie Sie das in Access tun? – ChaCol

+0

Tippfehler, fehlende Kommas ... – jarlh

+0

Siehe meinen bearbeiteten Code. Ich habe Code für MS ACCESS sowie – Madhivanan

2

Sie müssen GROUP BY verwenden, um die Summen pro Klasse zu erhalten.

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

(Die CLASS IN kann ein Teil weggelassen werden, wenn Sie nur Junioren und Senioren in der Tabelle haben.)

+0

Dies zeigt nicht die DeptID und ich brauche die JuniorCount und SeniorCount als separate Spalten nicht eine einzige Spalte – ChaCol

+0

@ChaCol, fügen Sie DeptID einfach zur SELECT-Liste und GROUP BY hinzu. (Noch separate Zeilen.) – jarlh

+0

Ja, aber wie separiere ich die Klasse in Spalten anstatt in Zeilen? Wie ich will eine Spalte, die JuniorCount mit der Nummer darunter und eine zweite Spalte SeniorCount mit der Nummer darunter – ChaCol

Verwandte Themen