ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

sql somar nota de aluno pela disciplina

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sex Mar 27, 2020 10:14 am    Assunto: sql somar nota de aluno pela disciplina Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sex Mar 27, 2020 10:52 am    Assunto: Responder com Citação

para selecionas o aluno uso essa sql:

sql.Add('select * from avaliacao where idmatricula like '+#39+ codalu +'%'+#39);
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sex Mar 27, 2020 10:56 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Mar 27, 2020 11:20 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sex Mar 27, 2020 12:28 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Mar 27, 2020 2:41 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sex Mar 27, 2020 5:52 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sex Mar 27, 2020 5:53 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sex Mar 27, 2020 5:58 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Mar 27, 2020 6:21 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
pbpach
Novato
Novato


Registrado: Quarta-Feira, 12 de Janeiro de 2005
Mensagens: 12
Localização: Manaus - Am

MensagemEnviada: Sáb Mar 28, 2020 12:57 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Dom Mar 29, 2020 11:18 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB