none
Group BY retorna resultado diferente do esperado RRS feed

  • Pergunta

  • Boa tarde

    Eu estou fazendo a consulta abaixo.

    declare @id integer
    set @id = 1305
    
    declare @schoolId integer
    set @schoolId = 81386
    
    declare @degreeId integer
    set @degreeId = 4
    
    
    SELECT C.id classeId, C.name classeName, D.shortname turma,COUNT(DISTINCT U.id) QtdStudents, COUNT(DISTINCT UA.id) QtdSubscribe, S.fantasyName,C.active,A.shortname,
    	(CASE WHEN A.shortname = 'CH' THEN ISNULL(AVG(CONVERT(REAL,G.VALUE)),0)end)mediach,
    	(CASE WHEN A.shortname = 'CN' THEN ISNULL(AVG(CONVERT(REAL,G.VALUE)),0)end)mediacn,
    	(CASE WHEN A.shortname = 'LC' THEN ISNULL(AVG(CONVERT(REAL,G.VALUE)),0)end)medialc,
    	(CASE WHEN A.shortname = 'MT' THEN ISNULL(AVG(CONVERT(REAL,G.VALUE)),0)end)mediamt
    	 FROM Classes C  
    		INNER JOIN Schools S ON S.id = C.schoolID
    		INNER JOIN Degrees D ON D.id = C.degreeID
    		LEFT JOIN Users U ON U.ClassID = C.id  
    		LEFT JOIN Users_Assessments UA ON UA.ClassID = C.id 
    		LEFT JOIN Grades G ON G.user_assessmentID = UA.id 
    		LEFT JOIN Areas A ON A.id = G.areaID
    	WHERE (C.Id = @id OR @id = 0) 
    		AND (S.id = @schoolId OR @schoolId = 0)
    		AND (D.id = @degreeId OR @degreeId = 0)
    GROUP BY C.id, C.name, D.shortname, S.fantasyName,C.active,A.shortname

    Obtenho o resultado 

    O resultado esperado encontra-se abaixo.

     

    Como é possível chegar no resultado esperado ?

    Obrigada.


    quinta-feira, 31 de janeiro de 2019 15:44

Respostas

Todas as Respostas