Discussion:
[firebase-br] Ajuda num SELECT - lher
(too old to reply)
Mel Adimari
2011-01-04 16:05:38 UTC
Permalink
usa o max em

Select max(nota.dtsaida) from..........
Muito boa tarde aos colegas,
Recorro a vocês porque realmente não estou conseguindo chega ao objetivo
necessário.
Estou mandando um comando SQL para o Firebird no qual preciso que retorne a
última compra do cliente num determindado perído.
Porém, em meu comando, está retornando TODAS as compras do cliente no
período.
====================
select pessoa.pes_codigo "Cod Cliente", pessoa.pes_nome "Nome do cliente",
pesrep.pes_cod_repres "Cód. Rep.", pessoa.pes_endere, bairro.bar_nome
"Bairro",
cidade.cid_nome "Cidade", pessoa.pes_fone, pessoa.pes_fone2,
pessoa.pes_fone3,
pessoa.pes_contat, pessoa.pes_consignado, pessoa.pes_condata,
pessoa.pes_condescricao,
pessoa.pes_conexpositor, nota.nf_numero, nota.ped_numero, nota.nf_valtotal,
nota.nf_valsubs, nota.nf_dtsaida
from nota inner join pessoa on (nota.pes_cod_cli = pessoa.pes_codigo)
inner join pesrep on (pessoa.pes_codigo = pesrep.pes_cod_cliente)
left outer join bairro on (pessoa.bar_codigo = bairro.bar_codigo)
left outer join cidade on (bairro.cid_codigo = cidade.cid_codigo)
where ((nota.pes_rep_cod = :codigo))
AND nota.nf_dtsaida Between'10/01/2010' AND '01/04/2011'
ORDER BY PESSOA.PES_NOME, nota.nf_dtsaida
====================
Uso o Firebird-2.1.1.17910-0_Win32 e o IBExpert para rodar meus scripts.
Programo em Delphi 7.
Agradeço qualquer tipo de ajuda que puderem fornecer.
Um GRANDE abraço e feliz 2011!!!
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Henrique Ribeiro
2011-01-04 14:57:54 UTC
Permalink
Eu pensei aqui numa subconsulta pra retornar as nfs de cada cliente, daí
pegaria a maior e faria mais uma comparação

AND NOTA.NF_NUMERO IN (*SUBCONSULTA*)

mas tô me perdendo na subconsulta.

Se alguém tiver uma inspiração, muito obrigado.

[ ]'s
Eu até já havia tentado o SELECT FIRST(1), porém, só retorna 1 registo
dentre as praticamente 500 compras (de vários clientes junstos).
O SELECT FIRST 1 despreza todo o resto do retorno e traz somente 1.
Muito obrigado pela ajuda, colegas, mas vamos continuar tentando.
[ ]'s
Em 4 de janeiro de 2011 12:39, Alysson Gonçalves de Azevedo <
select first 1 pessoa.pes_codigo .... ORDER BY PESSOA.PES_NOME,
nota.nf_dtsaida Desc
tenta ai e ve se da certo.
Alysson Gonçalves de Azevedo
(11) 8491-7730
(\(''^_^ )/)
"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"
Muito boa tarde aos colegas,
Recorro a vocês porque realmente não estou conseguindo chega ao objetivo
necessário.
Estou mandando um comando SQL para o Firebird no qual preciso que
retorne a
última compra do cliente num determindado perído.
Porém, em meu comando, está retornando TODAS as compras do cliente no
período.
====================
select pessoa.pes_codigo "Cod Cliente", pessoa.pes_nome "Nome do
cliente",
pesrep.pes_cod_repres "Cód. Rep.", pessoa.pes_endere, bairro.bar_nome
"Bairro",
cidade.cid_nome "Cidade", pessoa.pes_fone, pessoa.pes_fone2,
pessoa.pes_fone3,
pessoa.pes_contat, pessoa.pes_consignado, pessoa.pes_condata,
pessoa.pes_condescricao,
pessoa.pes_conexpositor, nota.nf_numero, nota.ped_numero,
nota.nf_valtotal,
nota.nf_valsubs, nota.nf_dtsaida
from nota inner join pessoa on (nota.pes_cod_cli = pessoa.pes_codigo)
inner join pesrep on (pessoa.pes_codigo = pesrep.pes_cod_cliente)
left outer join bairro on (pessoa.bar_codigo = bairro.bar_codigo)
left outer join cidade on (bairro.cid_codigo = cidade.cid_codigo)
where ((nota.pes_rep_cod = :codigo))
AND nota.nf_dtsaida Between'10/01/2010' AND '01/04/2011'
ORDER BY PESSOA.PES_NOME, nota.nf_dtsaida
====================
Uso o Firebird-2.1.1.17910-0_Win32 e o IBExpert para rodar meus scripts.
Programo em Delphi 7.
Agradeço qualquer tipo de ajuda que puderem fornecer.
Um GRANDE abraço e feliz 2011!!!
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Alysson Gonçalves de Azevedo
2011-01-04 18:03:57 UTC
Permalink
nesses casos de max... não se esqueça dos group by clientes...


Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)

"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"



Em 4 de janeiro de 2011 15:52, Marcos Dias Vendramini <
Tente usar o comando MAX dentro da clausula WHERE.
SELECT *
FROM Tb_Vendas
WHERE Codigo = ( SELECT MAX(Codigo) FROM Tb_Vendas )
Com isso, no SELECT dentro do WHERE irá retornar o maior código, que
certamente será o último.
E usará esse retorno para filtrar o SELECT principal.
Espero ter ajudado.
Att. Marcos Dias Vendramini
http://www.marcosdiasvendramini.com.br
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Henrique Ribeiro
2011-01-04 14:53:10 UTC
Permalink
Eu até já havia tentado o SELECT FIRST(1), porém, só retorna 1 registo
dentre as praticamente 500 compras (de vários clientes junstos).

O SELECT FIRST 1 despreza todo o resto do retorno e traz somente 1.

Muito obrigado pela ajuda, colegas, mas vamos continuar tentando.

[ ]'s

Em 4 de janeiro de 2011 12:39, Alysson Gonçalves de Azevedo <
select first 1 pessoa.pes_codigo .... ORDER BY PESSOA.PES_NOME,
nota.nf_dtsaida Desc
tenta ai e ve se da certo.
Alysson Gonçalves de Azevedo
(11) 8491-7730
(\(''^_^ )/)
"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"
Muito boa tarde aos colegas,
Recorro a vocês porque realmente não estou conseguindo chega ao objetivo
necessário.
Estou mandando um comando SQL para o Firebird no qual preciso que retorne
a
última compra do cliente num determindado perído.
Porém, em meu comando, está retornando TODAS as compras do cliente no
período.
====================
select pessoa.pes_codigo "Cod Cliente", pessoa.pes_nome "Nome do
cliente",
pesrep.pes_cod_repres "Cód. Rep.", pessoa.pes_endere, bairro.bar_nome
"Bairro",
cidade.cid_nome "Cidade", pessoa.pes_fone, pessoa.pes_fone2,
pessoa.pes_fone3,
pessoa.pes_contat, pessoa.pes_consignado, pessoa.pes_condata,
pessoa.pes_condescricao,
pessoa.pes_conexpositor, nota.nf_numero, nota.ped_numero,
nota.nf_valtotal,
nota.nf_valsubs, nota.nf_dtsaida
from nota inner join pessoa on (nota.pes_cod_cli = pessoa.pes_codigo)
inner join pesrep on (pessoa.pes_codigo = pesrep.pes_cod_cliente)
left outer join bairro on (pessoa.bar_codigo = bairro.bar_codigo)
left outer join cidade on (bairro.cid_codigo = cidade.cid_codigo)
where ((nota.pes_rep_cod = :codigo))
AND nota.nf_dtsaida Between'10/01/2010' AND '01/04/2011'
ORDER BY PESSOA.PES_NOME, nota.nf_dtsaida
====================
Uso o Firebird-2.1.1.17910-0_Win32 e o IBExpert para rodar meus scripts.
Programo em Delphi 7.
Agradeço qualquer tipo de ajuda que puderem fornecer.
Um GRANDE abraço e feliz 2011!!!
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Alysson Gonçalves de Azevedo
2011-01-04 14:39:51 UTC
Permalink
Olha, de cabeça e sem verificar... eu diria pra vc usar assim:

select first 1 pessoa.pes_codigo .... ORDER BY PESSOA.PES_NOME,
nota.nf_dtsaida Desc

tenta ai e ve se da certo.


Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)

"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"
Muito boa tarde aos colegas,
Recorro a vocês porque realmente não estou conseguindo chega ao objetivo
necessário.
Estou mandando um comando SQL para o Firebird no qual preciso que retorne a
última compra do cliente num determindado perído.
Porém, em meu comando, está retornando TODAS as compras do cliente no
período.
====================
select pessoa.pes_codigo "Cod Cliente", pessoa.pes_nome "Nome do cliente",
pesrep.pes_cod_repres "Cód. Rep.", pessoa.pes_endere, bairro.bar_nome
"Bairro",
cidade.cid_nome "Cidade", pessoa.pes_fone, pessoa.pes_fone2,
pessoa.pes_fone3,
pessoa.pes_contat, pessoa.pes_consignado, pessoa.pes_condata,
pessoa.pes_condescricao,
pessoa.pes_conexpositor, nota.nf_numero, nota.ped_numero, nota.nf_valtotal,
nota.nf_valsubs, nota.nf_dtsaida
from nota inner join pessoa on (nota.pes_cod_cli = pessoa.pes_codigo)
inner join pesrep on (pessoa.pes_codigo = pesrep.pes_cod_cliente)
left outer join bairro on (pessoa.bar_codigo = bairro.bar_codigo)
left outer join cidade on (bairro.cid_codigo = cidade.cid_codigo)
where ((nota.pes_rep_cod = :codigo))
AND nota.nf_dtsaida Between'10/01/2010' AND '01/04/2011'
ORDER BY PESSOA.PES_NOME, nota.nf_dtsaida
====================
Uso o Firebird-2.1.1.17910-0_Win32 e o IBExpert para rodar meus scripts.
Programo em Delphi 7.
Agradeço qualquer tipo de ajuda que puderem fornecer.
Um GRANDE abraço e feliz 2011!!!
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Marcos Dias Vendramini
2011-01-04 17:52:39 UTC
Permalink
Tente usar o comando MAX dentro da clausula WHERE.

Por exemplo:

SELECT *
FROM Tb_Vendas
WHERE Codigo = ( SELECT MAX(Codigo) FROM Tb_Vendas )

Com isso, no SELECT dentro do WHERE irá retornar o maior código, que
certamente será o último.
E usará esse retorno para filtrar o SELECT principal.

Espero ter ajudado.

Att. Marcos Dias Vendramini
http://www.marcosdiasvendramini.com.br
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Loading...