Fórum Preciso gerar um relatório e ta dificil. #180759

08/09/2003

0

Oi pessoal eu me deparei com um probleminha meio sacana aqui vejam só. Eu tenho três bancos de dados ´ Alunos, periodo e notas´ a estrutura deles é assim

Alunos
codigo +
nome a 40
...

Periodo
cod_alunos n
codigo +
periodo a 30
...

Notas
cod_periodo n
1 nota
2 nota
descricao
media
...

estes bancos estão linkados.
eu preciso geral um relatório que me dê todas as notas deacordo com o periodo mas de um aluno especifico e como não sei utilizar a query fiquei impacado e precido da ajuda de vocês eu fiz mais ou menos uma instrução que não da certo, se alguem puder me ajudar.

procedure tform_notas....
zonal:=(form_principal.tb_alunosCodigo.Text);
with form_principal.tb_nota do
begin
form_principal.Query1.SQL.Clear;
form_principal.Query1.SQL.Add(´SELECT * FROM notas where cod_periodo= :pzonal´);
form_principal.Query1.ParamByName(´pzonal´).AsString := (zonal);
form_principal.Query1.Prepare;
form_principal.Query1.Open;
form_rel_geral.QuickRep1.Preview;
end;

e na query eu coloquei isso:

select descricao, media from notas
order by 1

Preciso muito, muito mesmo fazer este relatorio.


Machado

Machado

Responder

Posts

08/09/2003

Essantos

[b:0321e7c9b2]Conselho![/b:0321e7c9b2]
Evita usar Parâmetros em uma Query.
Ex.:

Query1.Add(‘Select * From Tabela_01 where Código = ’ + EditCodigoPesq.Text);

T+


Responder

Gostei + 0

08/09/2003

Derecksp

Existem alguns problemas na query que vc criou.
Um dele foi que vc não identificou a origem dos dados (´From´), outra mesmo que vc identificasse, provavelmente vc teria um erro de ´Ambiguos Column Name´, pois vc teria duas colunas como mesmo nome (´Codigo´).

Faça a query da seguinte forma.

With form_principal.Query1 do
Begin
Close;
SQL.Clear;
SQL.Add ( ´Select Alu.Nome, Per.Codigo, Per.Nome´);
SQL.Add ( Not.1_Nota, Not.2_Nota´);
SQL.Add ( Not.Media, Not.Descricao´);
SQL.Add (From Alunos Alu ´);
SQL.Add (Inner join Periodo Per on (Alu.Codigo = Per.cod_alunos´);
SQL.Add (Inner join Notas Not on (Per.Codigo = Per.cod_periodo´);
SQL.Add (Where Alu.Codigo = :iAlunos ´);
ParamByName(´iAlunos´).asInteger := zonal;
open;

// Verifica se existem dados na Query
If isEmpty then
ShowMessage(´Não existem notas para o Aluno´);
Else
form_rel_geral.QuickRep1.Preview;

Close;
End;


Não sei qual banco de dados vc esta utilizando, fiz uma query que funcionaria no SQLServer (caso não exista erros de sintaxe). [risos]

Não sei se entendi bem seu problema, mas se houver dúvida pode me consultar em derecksp@bol.com.br.








End;

.SQL.Clear;
form_principal.Query1.SQL.Add(´SELECT * FROM notas where cod_periodo= :pzonal´);
form_principal.Query1.ParamByName(´pzonal´).AsString := (zonal);
form_principal.Query1.Prepare;
form_principal.Query1.Open;
form_rel_geral.QuickRep1.Preview;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar