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

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Seg Dez 02, 2013 9:06 pm    Assunto: sql Responder com Citação

tenho o meu relatorio sql
Form4.IBQuery1.Close;
Form4.IBQuery1.sql.Clear;
Form4.IBQuery1.SQL.Add('select id_reserv, id_cliente, id, nome_cliente, nome_produto, QTD_RESERVADA, QTD_RESERV, DATA_RESERVA');
Form4.IBQuery1.SQL.Add('from quantidade_reservada JOIN TB_EST_PRODUTO ON quantidade_reservada.id_produto=TB_EST_PRODUTO.id');
Form4.IBQuery1.SQL.Add('where id_produto = id');
Form4.IBQuery1.SQL.Add('order by nome_cliente');
Form4.IBQuery1.Open ;

assim ele lista no quickrep cliente fabio possui 3 produtos reservados,
ai lista

NOME QTD total
fabio X teria que mostrar 2
produto 1 2
produto 2 2
produto 3 2
joao X
produto 1 1
produto 2 1
produto 3 1

assim por diante, quero somar para mostrar no X, coloquei outro ibquery somente para o X
while not Form4.IBQuery1.Eof do
begin
Form4.IBQuery2.Close;
Form4.IBQuery2.sql.Clear;
Form4.IBQuery2.SQL.Add(' SELECT sum (QTD_RESERVADA) as QTD_RESERVADA');
Form4.IBQuery2.SQL.Add('from quantidade_reservada');
Form4.IBQuery2.SQL.Add('where id_cliente =:id');
Form4.IBQuery2.ParamByName('id').AsInteger := Form4.IBQuery1.FieldByName('id_cliente').AsInteger;
Form4.IBQuery2.Open ;
Form4.IBQuery1.Next;
end;

so que ele pega somente no "X" aparece somente a ultimo resgitro o somatorio do ultimo resgitro, como poderia fazer ????????
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
juniorpba
Colaborador
Colaborador


Registrado: Quarta-Feira, 25 de Janeiro de 2012
Mensagens: 1690
Localização: Paranaiba - MS

MensagemEnviada: Seg Dez 02, 2013 11:33 pm    Assunto: Responder com Citação

Amigo usa mais ou menos assim pra vc pegar a quantidade


Código:
 IntToStr(DM.tabela.RecordCount);
ai vc joga este valor para onde que vc quiser so apenas adequar com seu codigo
_________________
"Conhece a teu inimigo e a ti mesmo e lutará 100 batalhas sem medo da derrota"
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
juniorpba
Colaborador
Colaborador


Registrado: Quarta-Feira, 25 de Janeiro de 2012
Mensagens: 1690
Localização: Paranaiba - MS

MensagemEnviada: Seg Dez 02, 2013 11:36 pm    Assunto: Responder com Citação

ou se nao vc faz assim
Código:

while not Form4.IBQuery1.Eof do
begin
   close;
   SQL.Clear;
   SQL.Add('sql todo );
   ParamByName('parametro ai').AsString := onde ele vai receber este parametro
   Open;
   llabel.Caption := Fields[0].AsString;

_________________
"Conhece a teu inimigo e a ti mesmo e lutará 100 batalhas sem medo da derrota"
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Ter Dez 03, 2013 7:27 am    Assunto: Responder com Citação

IntToStr(DM.tabela.RecordCount);

eu nao tenho nenhuma tabela, somente a ibquery ligada no quickrep, mas eu preciso somar a quantidade de cada cliente, somo quantidade do cliente 1, do cliente 2 assim por diante.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Ter Dez 03, 2013 7:30 am    Assunto: Responder com Citação

while not Form4.IBQuery1.Eof do
begin
close;
SQL.Clear;
SQL.Add('sql todo );
ParamByName('parametro ai').AsString := onde ele vai receber este parametro
Open;
llabel.Caption := Fields[0].AsString;


"onde ele vai receber este", onde eu pego esse valor no meu codigo acima, foi quase igual a isso que eu fiz, so que essa sua linha
ParamByName('parametro ai').AsString := onde ele vai receber este
o parametro teria q ser um array de valores, porque o cliiente 1 tem 3 produtos, 2 cada total 6,o cliente joao tem 3 produtos quantidade 1, total 3, tenho que pegar direto do outro select da outra ibquery como quepoderia fazer ??????
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: Ter Dez 03, 2013 9:35 am    Assunto: Responder com Citação

Bom dia,

fabiodurgante, experimente executar a sua query no evento BeforePrint da QRBand em que deve ser impressa a quantidade.

Espero que ajude.

_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos-residencial-casa
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Ter Dez 03, 2013 6:15 pm    Assunto: Responder com Citação

while not Form4.IBQuery1.Eof do
begin
Form4.IBQuery2.Close;
Form4.IBQuery2.sql.Clear;
Form4.IBQuery2.SQL.Add(' SELECT sum (QTD_RESERVADA) as QTD_RESERVADA');
Form4.IBQuery2.SQL.Add('from quantidade_reservada');
Form4.IBQuery2.SQL.Add('where id_cliente =:id');
Form4.IBQuery2.ParamByName('id').AsInteger := Form4.IBQuery1.FieldByName('id_cliente').AsInteger;
Form4.IBQuery2.Open ;
Form4.IBQuery1.Next;
end;

o problema é aqui o parametro que eu passo pra ibquery, ele so mostra o ultimo valor tem que fazer todos !!!!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabiodurgante
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 8 de Novembro de 2013
Mensagens: 197

MensagemEnviada: Ter Dez 03, 2013 6:20 pm    Assunto: Responder com Citação

exatamente funcionou como acima no evento BeforePrint da QRBand em que deve ser impressa a quantidade.
coloquei
Form4.IBQuery2.Close;
Form4.IBQuery2.sql.Clear;
Form4.IBQuery2.SQL.Add(' SELECT sum (QTD_RESERVADA) as QTD_RESERVADA');
Form4.IBQuery2.SQL.Add('from quantidade_reservada');
Form4.IBQuery2.SQL.Add('where id_cliente =:id');
Form4.IBQuery2.ParamByName('id').AsInteger := Form4.IBQuery1.FieldByName('id_cliente').AsInteger;
Form4.IBQuery2.Open ;

funcionou correto agradeço a todos VALEU!!!!!!!!!!
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 -> Delphi 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