2017-05-06 3 views
0

Dies zu erzeugen, ist meine Frage:Benötigen Sie Hilfe bei SQL Server-Abfrage zu erzeugen, eine Note auf der Grundlage von Durchschnittsnoten

SELECT 
    [rollNo], AVG([marks]) 
FROM 
    [dbo].[ALL_REC] 
GROUP BY 
    [rollNo] 

Nun, was ich brauche Hilfe mit ist mit Berechnung, wie die dritte Spalte für die Klassen zurückkehren .

Ich muß es sein:

  1. ‚A‘ für durchschnittliche Noten von mehr als 90
  2. ‚B‘ für durchschnittliche Noten von mehr als 80
  3. ‚C‘ für durchschnittliche Noten von mehr als 70.
  4. 'D' für durchschnittliche Markierungen größer als 60.
  5. 'F' für die Durchschnittsnoten weniger als 60.
+2

Hinweis: 'CASE' Ausdruck. –

Antwort

1

Verwenden Sie CASE Ausdruck.

Abfrage

SELECT 
    [rollNo], AVG([marks]) [Average], 
    CASE 
     WHEN AVG([marks]) >= 90 THEN 'A' 
     WHEN AVG([marks]) BETWEEN 80 AND 89 THEN 'B' 
     WHEN AVG([marks]) BETWEEN 70 AND 79 THEN 'C' 
     WHEN AVG([marks]) BETWEEN 60 AND 69 THEN 'D' 
     ELSE 'E' 
    END [Grade] 
FROM [dbo].[ALL_REC] 
GROUP BY [rollNo]; 
Verwandte Themen