Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

eliok10

Query simples...

Mensagens Recomendadas

eliok10

Boa noite..

Estou com um problema numa query que considero fácil mas não estou a conseguir resolver..

A tabela é esta:

http://puu.sh/hvyg8/216c9dc6ca.png

Produto / DataVenda / Quantidade / PCusto

O que eu quero: Seleccionar a linha de cada produto (com data de venda, quantidade e p custo) baseado na data mais recente.

Apenas uma linha por cada produto...

É em Access.

Alguém me ajuda? Sei que é simples mas enfim, não tenho grande experiência e ando ás cabeçadas nisto ha umas horinhas já..

Muito obrigado a todos

Editado por eliok10

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa noite,

Select Produto, DataVenda, Quantidade, PCusto From Produto  Order by DataVenda  ASC, Group by Produto

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
eliok10

Boa noite,

Select Produto, DataVenda, Quantidade, PCusto From Produto  Order by DataVenda  ASC, Group by Produto

Cordiais cumprimentos,

Apocsantos

Obrigado pela resposta, contudo dessa forma ele lista todos os produtos.. Quero apenas 1 linha por produto como referencia a data mais recente..

obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

SELECT DISTINCT Produto.Produto, Last(Produto.DataVenda) AS DataVenda, Last(Produto.Quantidade) AS Quantidade, Last(Produto.PCusto) AS PCusto
FROM Produto
GROUP BY Produto.Produto
ORDER BY Last(Produto.DataVenda) DESC;

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
carlosAl

conforme o codigo sql do colega ApocSantos, acho que para conseguir a "data mais recente" , será melhor substituir "Last" por "Max"

no exemplo a tua tabela chama-se "produto"

SELECT DISTINCT Produto.Produto, MAX(Produto.DataVenda) AS DataVenda, MAX(Produto.Quantidade) AS Quantidade, MAX(Produto.PCusto) AS PCusto
FROM Produto
GROUP BY Produto.Produto
ORDER BY MAX(Produto.DataVenda) DESC;

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
carlosAl

pensando melhor talvez nao funcione so com uma query, acho que para obter os registos por produto com a data mais recente é necessario ter duas querys :

primeira query que eu chamo c1

SELECT DISTINCT Produto.produto, Max(Produto.datavenda) AS MaxDedatavenda
FROM Produto
GROUP BY Produto.produto;

segunda query onde junto os campos quantidade e preco de custo

SELECT produto.id, produto.produto, produto.datavenda, produto.quantidade, produto.pcusto
FROM c1 INNER JOIN produto ON (c1.produto = produto.produto) AND (c1.MaxDedatavenda = produto.datavenda);

Editado por carlosAl

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.