Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sex Mar 27, 2020 10:14 am Assunto: sql somar nota de aluno pela disciplina |
|
|
Amigos. to pesquisando a semanas uma consulta sql. e não consegui, por favor podem me ajudar, aprendi muito com vcs do forum, obrigado.
uso o seatlle e firebird 2.5. a tabela e avaliacao.
id idmatric aluno disciplina bimestre nota
---------------------------------------------------------------------------------------
1 1 Paulo Bandeira artes 1 6
2 1 Paulo Bandeira historia 1 8
3 1 Paulo Bandeira artes 2 10
4 1 Paulo Bandeira matemática 2 9
5 1 Paulo Bandeira artes 3 9
quero filtrar usando esses campos, agregar as disciplinas somando as notas |
|
Voltar ao Topo |
|
 |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sex Mar 27, 2020 10:52 am Assunto: |
|
|
para selecionas o aluno uso essa sql:
sql.Add('select * from avaliacao where idmatricula like '+#39+ codalu +'%'+#39); |
|
Voltar ao Topo |
|
 |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sex Mar 27, 2020 10:56 am Assunto: |
|
|
Melhor por a procedure completa.
procedure TFrmAVALIAcon.BitBtn5Click(Sender: TObject);
var CODALU : string;
begin
IF InputQuery('Qual o Código', ' do Aluno ', CODALU) THEN BEGIN
Try StrToINT(CODALU);
Except raise Exception.Create('Permitido Somente Números!');
end;
with AVALIACAO do begin
CLOSE;
SQL.Clear;
SQL.Add('SELECT * FROM AVALIACAO where idmatricula like '+#39+ CODALU +'%'+#39);
Open;
if AVALIACAO.IsEmpty = true then begin
CARREGA;
ShowMessage('O Filtro Não pode ser Executado ');
end;
end;
END;
end; |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mar 27, 2020 11:20 am Assunto: |
|
|
Bom dia,
Experimente fazer uns testes com a consulta abaixo para ver se é obtido o resultado esperado:
Código: | select
idmatricula,
aluno,
disciplina,
sum(nota) as Soma
from avaliacao
group by
idmatricula,
aluno,
disciplina |
Espero que ajude
Editado pela última vez por imex em Qui Set 16, 2021 5:34 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sex Mar 27, 2020 12:28 pm Assunto: |
|
|
imex Amigo deu esse erro
Projeto escola.exe raised exception classe EdatabaseError With message
‘ AVALIACAO:Field’ IDAVALIACAO’ Not Found
uso ibdataset e seto todos os campos dando 2 clicks no componente e adiciono todos os campos.
sera q é por isso q pede o resto dos campos |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mar 27, 2020 2:41 pm Assunto: |
|
|
Sim, esse está ocorrendo porque essa query não retorna esse campo. Nesse caso você vai precisar de um outro IBDataSet para essa query. |
|
Voltar ao Topo |
|
 |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sex Mar 27, 2020 5:52 pm Assunto: |
|
|
fiz uma nova sql e melhorou em algumas coisas.
essa e a query:
procedure TFrmAVALIAcon.BitBtn5Click(Sender: TObject);
var CODALU : string;
begin
IF InputQuery('Qual o Código', ' do Aluno ', CODALU) THEN BEGIN
Try StrToINT(CODALU);
Except raise Exception.Create('Permitido Somente Números!');
end;
with AVALIACAO do begin
CLOSE;
SQL.Clear;
SQL.text:=
'SELECT idavaliacao,idmatricula,aluno,AVALIACAO.disciplina,bimestre,serie,turma,turno, soma ' +
'FROM AVALIACAO ' +
'left join (' +
'select disciplina, SUM(qtde_falta) as falta, SUM(NOTA) soma ' +
'FROM AVALIACAO '+
'Group by disciplina ' +
')soma ON soma.disciplina = avaliacao.disciplina ' +
'where avaliacao.idmatricula like '+#39+ CODALU +'%'+#39 +
'order by disciplina ';
OPEN;
if AVALIACAO.IsEmpty = true then begin
ShowMessage('O Filtro Não pode ser Executado ');
end;
end;
END;
end;
nao ta agregando as disciplina nem ta somando o campo qtde_falta
tirei os campos do componente, vazio agora |
|
Voltar ao Topo |
|
 |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sex Mar 27, 2020 5:53 pm Assunto: |
|
|
1 1 Paulo Bandeira artes 1 6
2 1 Paulo Bandeira historia 1 8
3 1 Paulo Bandeira artes 2 10
4 1 Paulo Bandeira matemática 2 9
5 1 Paulo Bandeira artes 3 9 |
|
Voltar ao Topo |
|
 |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sex Mar 27, 2020 5:58 pm Assunto: |
|
|
1 1 Paulo Bandeira artes 6 6
2 1 Paulo Bandeira historia 1 8
3 1 Paulo Bandeira artes 6 10
4 1 Paulo Bandeira matemática 2 9
5 1 Paulo Bandeira artes 6 9
a soma de total de artes é 6 = 1º é 1, 2º é 2, 3º é 3 = total 6
Soma as notas e repete na disciplina mas nao agrega as mesmas
e nao ta somando as faltas
por favor me ajudem |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mar 27, 2020 6:21 pm Assunto: |
|
|
Esses valores 1, 2 e 3 não eram do campo Bimestre?
Acho melhor você postar um exemplo com os valores de alguns registros e o respectivo resultado esperado considerando esses mesmos valores. |
|
Voltar ao Topo |
|
 |
pbpach Novato

Registrado: Quarta-Feira, 12 de Janeiro de 2005 Mensagens: 12 Localização: Manaus - Am
|
Enviada: Sáb Mar 28, 2020 12:57 am Assunto: |
|
|
assim fica no dbgrid depois q faço o filtro por aluno
IDA IDMAT ALUNO DISCIPLINA NOTA QTDE_FALTA BIMESTRE
1 1 Paulo Bandeira Artes 5,110 2 1
2 1 Paulo Bandeira Ciências 9,550 5 1
3 1 Paulo Bandeira Matemática 9,550 2 1
4 1 Paulo Bandeira Ed. Física 9,550 1 1
5 1 Paulo Bandeira Português 9,550 10 1
6 1 Paulo Bandeira Empreendedoris 9,550 5 1
7 1 Paulo Bandeira História 9,550 12 2
8 1 Paulo Bandeira Geográfia 9,550 8 2
9 1 Paulo Bandeira Ciências 9,550 11 3
10 1 Paulo Bandeira Artes 9,550 8 3
11 1 Paulo Bandeira Artes 9,550 5 4
12 1 Paulo Bandeira Ciências 6,650 22 4
quero somar as nota e as faltas agregando pela disciplina
p imprimir o boletim.
Obrigado. |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Dom Mar 29, 2020 11:18 am Assunto: |
|
|
Experimente fazer uns testes com a query abaixo para ver se é obtido o resultado esperado:
Código: | select
idmatricula,
aluno,
disciplina,
sum(nota) as SomaNotas,
sum(qtde_falta) as SomaQtdeFaltas
from avaliacao
group by
idmatricula,
aluno,
disciplina |
Qualquer coisa volte a postar informando o problema ocorrido ou o que faltou ou sobrou em relação ao resultado da query sugerida.
Espero que ajude |
|
Voltar ao Topo |
|
 |
|