Array
(
)

Alguém pode me ajudar a fazer uma SQL que me retorne o custo da maior data?

Priscila Cardoso
   - 31 ago 2015

Preciso fazer uma SQL (SQLServer) onde eu tenho duas tabelas, uma de produto e uma com a movimentação do custo desses produtos e preciso que me retorne apenas 1 linha para cada produto com o valor do custo da maior data. Exe.
TABELA PRODUTOS
COD DESCRICAO
1 PRODUTO UM
2 PRODUTO DOIS
3 PRODUTO TRES
TABELA CUSTOS
COD.PROD. DATA CUSTO
1 01/01/2015 10,00
1 10/01/2015 15,00
1 15/02/2015 20,00
2 01/01/2015 50,00
TABELA RESULTADOS
COD.PROD. DATA CUSTO
1 15/02/2015 20,00
2 01/01/2015 50,00
3 0,00

Jair A.n.
   - 31 ago 2015

Primeiro você precisa ter uma subconsulta onde os itens de produto determina a data máxima
Exemplo:

SELECT prd.cod
, prd.descricao
, cus.custo
FROM [Tabela Produtos] prd
INNER JOIN (SELECT mct.prod
, MAX (mct.data) AS max_data
FROM [Tabela Custos] mct
GROUP BY mct.prod
) sqy
INNER JOIN [Tabela Custos] cus
ON (cus.prod = sqy.prd)
AND (cus.data = sqy.max_data)
ORDER BY prd.cod