Preciso gerar um relatório e ta dificil.
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.
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
Curtidas 0
Respostas
Essantos
08/09/2003
[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+
Evita usar Parâmetros em uma Query.
Ex.:
Query1.Add(‘Select * From Tabela_01 where Código = ’ + EditCodigoPesq.Text);
T+
GOSTEI 0
Derecksp
08/09/2003
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;
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;
GOSTEI 0