Selecionar ultima data de um grupo
Tenho 2 tabelas Clientes, Vendas e Vendedores. Preciso percorrer toda a tabela de clientes e verificar na tabela de vendas qual a data da última compra e última quantidade comprada.
Seria algo com os seguintes campos
Select C.NomeCliente, C.Fantasia, C.Rua, C.Bairro, C.Cidade, C.NumCliente, D.Nomevendedor, V.Data, V.Quantidade from Clientes C, Vendedores D, Vendas V
Where (C.NumCliente = V.NumCliente) and (D.NumeroVendedor = V.NumeroVendedor) and (V.Data = [b:99278ac97c]ULTIMADATADECOMPRA[/b:99278ac97c]) -> esta ultima data de compra é o filtro que desejo.
Seria algo com os seguintes campos
Select C.NomeCliente, C.Fantasia, C.Rua, C.Bairro, C.Cidade, C.NumCliente, D.Nomevendedor, V.Data, V.Quantidade from Clientes C, Vendedores D, Vendas V
Where (C.NumCliente = V.NumCliente) and (D.NumeroVendedor = V.NumeroVendedor) and (V.Data = [b:99278ac97c]ULTIMADATADECOMPRA[/b:99278ac97c]) -> esta ultima data de compra é o filtro que desejo.
Edilcimar
Curtidas 0
Respostas
Picyka
25/05/2008
Só nao entendi como vc vai pegar a ultima quantidade comprada sendo que a tabela compras deve estar ligada a um outra tabela ItenCompra
para buscar 10 compras de um cliente poderia ser feito assim sendo que o sql é para o firebird
with QSqlGeral do
begin
Close;
Sql.Clear;
Sql.Add(´select First 10 * from pedido´);
Sql.Add(´left join cliente on codcli=codcliped´);
Sql.Add(´where´);
Sql.Add(´codcliped=´+edCliente.Text);
Open;
so que ai ele pegará as 10 primeiras ai vc usa o desc para ordenar em ordem decrescente ai vc consegue pegar a ultima.
para buscar 10 compras de um cliente poderia ser feito assim sendo que o sql é para o firebird
with QSqlGeral do
begin
Close;
Sql.Clear;
Sql.Add(´select First 10 * from pedido´);
Sql.Add(´left join cliente on codcli=codcliped´);
Sql.Add(´where´);
Sql.Add(´codcliped=´+edCliente.Text);
Open;
so que ai ele pegará as 10 primeiras ai vc usa o desc para ordenar em ordem decrescente ai vc consegue pegar a ultima.
GOSTEI 0
Emerson Nascimento
25/05/2008
acho que é isso:
Select C.NomeCliente, C.Fantasia, C.Rua, C.Bairro, C.Cidade, C.NumCliente, D.Nomevendedor, V.Data, V.Quantidade from Clientes C inner join Vendas V on (V.NumCliente = C.NumCliente) inner join Vendedores D on (D.NumeroVendedor = V.NumeroVendedor) Where V.Data = (Select Max(V2.Data) from Vendas V2 where V2.NumCliente = C.NumCliente)
GOSTEI 0
Edilcimar
25/05/2008
Grato emerson, vou povoar a tabela para testar, depois retorno.
GOSTEI 0