2016-09-08 2 views
-3

Schreiben Ich habe eine Tabelle mit einigen Daten .. Prozentsatz jeder Schüler in einer Schule mit folgenden Spalten ...Benötigen Sie Hilfe bei SQL Server-Abfrage

Class | name | Percentage(%) 

ich eine SQL-Abfrage benötigen Anzahl der Schüler in jeder zu bekommen Klasse mit unten Diff% -Tafeln. Studenten, die keine Prüfung geschrieben haben, haben NULL in Percentage Spalte in Quellentabelle.

class| 0-10% | 10%-20% | 20%-30% | >30% | Not written (NULLS in source table) 

Kann jemand mir helfen, die Frage zu schreiben?

+1

testen Fall Ausdruck suchen und bitte auch hier, wie Frage zu verbessern: https: //spaghettidba.com/2015/04/24/how- to-post-at-sql-Frage-on-a-public-forum/ – TheGameiswar

+0

Riechen wie Hausaufgaben, dass jemand keine Mühe gemacht hat. – scsimon

+0

Wählen t.class, t. [Bereich] als [Prozentbereich], count (*) als [Count] aus ( wählen Klasse, Fall, wenn abs (OilDifferencepercent) NULL ist dann 'Nicht schriftliche Prüfung' \t wenn abs (OilDifferencepercent) zwischen 0 und 10 dann '0-10' wenn abs (OilDifferencepercent) zwischen 11 und 20 dann '11 -20 ' \t wenn abs (OilDifferencepercent) zwischen 21 und 30 dann '21 -30' else ' 30 - Mehr 'Ende als Bereich von

) t Gruppe von t.class, t. [Bereich] Auftrag von t.class – user6355550

Antwort

0

Ich denke, das Ihnen hilft ..

SELECT 
CLASS, 
[0-10%]= COUNT(CASE WHEN PERCENTAGE BETWEEN 0 AND 10 THEN 1 END), 
[11-20%]= COUNT(CASE WHEN PERCENTAGE BETWEEN 11 AND 20 THEN 1 END), 
[21-30%]= COUNT(CASE WHEN PERCENTAGE BETWEEN 21 AND 30 THEN 1 END), 
[>30%]= COUNT(CASE WHEN PERCENTAGE >30 THEN 1 END), 
[NOT WRITTEN]= COUNT(CASE WHEN PERCENTAGE IS NULL THEN 1 END) 
FROM [Tablename] GROUP BY CLASS 
+0

Danke, es funktioniert – user6355550

Verwandte Themen