Marques
Setembro 28, 2010, 1:11pm
#1
Colegas,
Tenho uma tabela assim:
id id_vendedor data_venda
1 1 2010-09-01
2 1 2010-09-28
3 2 2010-09-07
Preciso de um select que me retorne a última data_venda de cada vendedor.
Nesse exemplo deveria retornar os registros com id 2 e 3.
Vc pode me ajudar?
Muito obrigado,
Marques
Guevara
Setembro 28, 2010, 1:16pm
#2
Tente assim:
select max(data_venda) from Funcionario f where f.id_vendedor = 2;
select max(data_venda) from Funcionario f where f.id_vendedor = 3;
[]s
Vê se assim ele vai dar certo:
select max(data_venda) from Funcionario f where f.id_vendedor = 1;
select max(data_venda) from Funcionario f where f.id_vendedor = 2;
Acho que assim ele te retornará as ultimas vendas em relação a ultima venda dos vendedores.
Já da maneira que o ‘Guevara’ colocou, ele não retornará nada, pois não existe um id_vendedor = 3 e sim os id_vendedor = 1 e 2!!
no caso de muitos funcionários ^^ – veja se funciona
select * from Funcionario where data_venda=(select max(data_venda) from Funcionario );
Guevara
Setembro 28, 2010, 1:45pm
#5
É, o 3 para id_vendedor não existe, é pq eu tinha colocado id apenas, ai percebi que era id_vendedor, mas esqueci de alterar o 3 para 2. =)
Agora dependerá somente de sua necessidade Marques…
Mais mesmo se você for usar somente os 2 vendedores, é mais interessante utilizar da forma que o andre.froes colocou, pois caso precise depois acrescentar mais funcionários, não precisa criar um select para cada funcionário!
select max(data_venda)
from Funcionario
GROUP BY id_vendedor
Marques
Setembro 28, 2010, 2:13pm
#8
Ele retorna somente o registro com a maior data existente no bancoe naum a maior data de cada vendedor....
Ele retorna somente o registro com a maior data existente no bancoe naum a maior data de cada vendedor…