Tópico anterior Próximo tópico Novo tópico
VB.NET
#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 FromO 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