C# sql case when sorunu

Projemde sınıf var kapastesi 10’un altında olanlara Harika,10 ve 40 arasında olanlara
Normal, 40’ın üstünde olanlara Berbat diyeceğim takma isimlerle.

Sonra kaç tane harika kaç tane normal kaç tane berbat sınıf olduğunu 3 satır haline getiremedim

ilgili kod;

  	SELECt (case when kapasite < 10 then 'Harika' when kapasite > 10 or kapasite < 40 then 'Normal Sınıf' end ) AS [İSİM], COUNT(kapasite) AS [ADET] FROM TEST_SINIFLAR WHERE kapasite BETWEEN 0 AND 9 group by kapasite

Beceremedim,yardımlarınızı bekliyorum

group by kısmını da case-when ile yazarak çözebilirsin:

SELECT 
    case when 
        kapasite < 10 then 'Harika' 
        when kapasite > 10 or kapasite < 40 then 'Normal Sınıf' end  AS [İSİM], 
    COUNT(kapasite) AS [ADET] 
FROM 
    TEST_SINIFLAR 
WHERE kapasite BETWEEN 0 AND 9 
group by case when 
        kapasite < 10 then 'Harika' 
        when kapasite > 10 or kapasite < 40 then 'Normal Sınıf' end

veya case-when kullanıp oluşturduğun sütunu subquery yaparak dışarıya ekstra bir select ile group by yapabilirsin:

SELECT İSİM, COUNT(kapasite) AS [ADET]
FROM 
(SELECT 
    case when 
        kapasite < 10 then 'Harika' 
        when kapasite > 10 or kapasite < 40 then 'Normal Sınıf' end  AS [İSİM], 
    kapasite 
FROM 
    TEST_SINIFLAR 
WHERE kapasite BETWEEN 0 AND 9 )
GROUP BY İSİM

Bu butun degerleri kapsiyor.

1 Beğeni

sağolasın hocam eline sağlık