DOIS CAMPOS COM SUM NO SQL SERVER

 Tópico anterior Próximo tópico Novo tópico

DOIS CAMPOS COM SUM NO SQL SERVER

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#496032 - 11/01/2021 11:39:59

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Última edição em 11/01/2021 11:47:50 por JCM0867

Olá pessoal,

Tenho esta Tabela:
Select c1.Dc4Aluno, sum(c1.Dc4Nota01) as Nota1, Nota2
from TESTE_DiarioClasse1 a
Left Join TESTE_DiarioClasse3 b1 On a.IdDiarioClasse = b1.IdDiarioClasse and b1.Dc3Grau='G1'
Left Join TESTE_DiarioClasse4 c1 On b1.IdAvaliacao = c1.IdAvaliacao
Where a.Dc1Disciplina = 'LESP' and a.idTurma = 200 and a.IdDiarioClasse=71
group by c1.Dc4Aluno
order by c1.Dc4Aluno

Gostariaria de montar essa tabela acima, usando a tabela de baixo para colocar a coluna Nota2

Select c2.Dc4Aluno, sum(c2.Dc4Nota01) as Nota2
from TESTE_DiarioClasse1 d
left Join TESTE_DiarioClasse3 b2 On d.IdDiarioClasse = b2.IdDiarioClasse and b2.Dc3Grau='G2'
left Join TESTE_DiarioClasse4 c2 On b2.IdAvaliacao = c2.IdAvaliacao
Where d.Dc1Disciplina = 'LESP' and d.idTurma = 200 and d.IdDiarioClasse=71
group by c2.Dc4Aluno
order by c2.Dc4Aluno

Se eu colocar:
Select c1.Dc4Aluno, sum(c1.Dc4Nota01) as Nota1, sum(c2.Dc4Nota01) as Nota2 e seus respectivos Joins, a soma sai toda errada,
se eu colocar só um SUM sai certo
Como posso fazer?




Resposta escolhida #496033 - 11/01/2021 13:24:34

LUIS2014
CURITIBA
Cadast. em:Agosto/2014


union não daria certo?

select aluno, sum(nota1) as nota1, 0 as nota2
union
select aluno, 0 as nota1, sum(nota2) as nota2



#496035 - 11/01/2021 21:12:49

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Ai duplica os registros e não insere uma coluna



#496038 - 12/01/2021 09:38:11

LUIS2014
CURITIBA
Cadast. em:Agosto/2014


você tentou implementar velhinho?

  SELECT A.ALUNO, SUM(A.NOTA1) NOTA1, SUM(A.NOTA2) NOTA2
(
Select c1.Dc4Aluno, sum(c1.Dc4Nota01) as Nota1, 0 as Nota2
from TESTE_DiarioClasse1 a
Left Join TESTE_DiarioClasse3 b1 On a.IdDiarioClasse = b1.IdDiarioClasse and b1.Dc3Grau='G1'
Left Join TESTE_DiarioClasse4 c1 On b1.IdAvaliacao = c1.IdAvaliacao
Where a.Dc1Disciplina = 'LESP' and a.idTurma = 200 and a.IdDiarioClasse=71
group by c1.Dc4Aluno

union

Select c2.Dc4Aluno, 0 as Nota1, sum(c2.Dc4Nota01) as Nota2
from TESTE_DiarioClasse1 d
left Join TESTE_DiarioClasse3 b2 On d.IdDiarioClasse = b2.IdDiarioClasse and b2.Dc3Grau='G2'
left Join TESTE_DiarioClasse4 c2 On b2.IdAvaliacao = c2.IdAvaliacao
Where d.Dc1Disciplina = 'LESP' and d.idTurma = 200 and d.IdDiarioClasse=71
group by c2.Dc4Aluno
) A
GROUP BY A.ALUNO
ORDER BY A.ALUNO




#496039 - 12/01/2021 12:12:27

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Última edição em 12/01/2021 12:14:03 por JCM0867

a A está ficando sublinhado em vermelho.

Erro: Msg 102, Level 15, State 1, Line 35
Incorrect syntax near 'A'.

O A.Aluno não seria A.Dc4Aluno?
mesmo assim tb não reconhece





#496040 - 12/01/2021 12:22:28

LUIS2014
CURITIBA
Cadast. em:Agosto/2014


faltou um 'from' na minha primeira linha

SELECT A.ALUNO, SUM(A.NOTA1) NOTA1, SUM(A.NOTA2) NOTA2 FROM
(
Select c1.Dc4Aluno, sum(c1.Dc4Nota01) as Nota1, 0 as Nota2
from TESTE_DiarioClasse1 a
Left Join TESTE_DiarioClasse3 b1 On a.IdDiarioClasse = b1.IdDiarioClasse and b1.Dc3Grau='G1'
Left Join TESTE_DiarioClasse4 c1 On b1.IdAvaliacao = c1.IdAvaliacao
Where a.Dc1Disciplina = 'LESP' and a.idTurma = 200 and a.IdDiarioClasse=71
group by c1.Dc4Aluno

union

Select c2.Dc4Aluno, 0 as Nota1, sum(c2.Dc4Nota01) as Nota2
from TESTE_DiarioClasse1 d
left Join TESTE_DiarioClasse3 b2 On d.IdDiarioClasse = b2.IdDiarioClasse and b2.Dc3Grau='G2'
left Join TESTE_DiarioClasse4 c2 On b2.IdAvaliacao = c2.IdAvaliacao
Where d.Dc1Disciplina = 'LESP' and d.idTurma = 200 and d.IdDiarioClasse=71
group by c2.Dc4Aluno
) A
GROUP BY A.ALUNO
ORDER BY A.ALUNO  




#496041 - 12/01/2021 12:31:21

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Última edição em 12/01/2021 12:44:15 por JCM0867

Antes de ler aqui antes da úçtima postagem tb vi que estava faltando o From
O Sum na primeira linha para não precisar agregar no Group by
Obrigado, deu certo.




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JCM0867 em 12/01/2021 15:13:24