Olá pessoal, estou precisando fazer uma consulta onde os dados sejam retornados desta projeção mensurando apenas o registro mais recente cadastrado e para isso estou
tentando usar um subselect com a função max, porém a consulta continua trazendo mais de um registro.
O Banco de dados é o SQL Server 2012.
Segue os dados retornados e a consulta aplicada
Qualquer sugestão será bem vinda.
NUM_ORCAMENTO, CD_ITEM_PEDIDO, CD_PRODUTO, NUM_PEDIDO, QTD_ITEM, VIG_GARANTIA_ESTENDIDA, CD_TRANSACAO_GARANTECH, DT_TRANSACAO
957517 1 8259 0 1 NULL 1 2011-01-24 15:21:16.617
957517 1 8259 0 1 NULL 2 2011-01-24 15:39:53.990
SELECT TOP 10
ITEM_PED.NUM_ORCAMENTO AS NUM_ORCAMENTO,
ITEM_PED.CD_ITEM_PEDIDO AS CD_ITEM_PEDIDO,
ITEM_PED.CD_PRODUTO AS CD_PRODUTO,
ITEM_PED.NUM_PEDIDO AS NUM_PEDIDO,
ITEM_PED.QTD_ITEM AS QTD_ITEM,
TGRE.VIG_GARANTIA_ESTENDIDA,
TRANS.CD_TRANSACAO_GARANTECH,
TRANS.DT_TRANSACAO
FROM TAB_ITEM_PEDIDO ITEM_PED
LEFT JOIN TAB_ITEM_PEDIDO_GARANTIA ITEM_PED_GAR
ON (ITEM_PED.NUM_ORCAMENTO = ITEM_PED_GAR.NUM_ORCAMENTO
AND ITEM_PED.CD_ITEM_PEDIDO = ITEM_PED_GAR.CD_ITEM_PEDIDO
AND ITEM_PED_GAR.NUM_ORCAMENTO = 957517
)
JOIN TAB_TRANSACAO_GARANTECH TRANS
ON (ITEM_PED.NUM_ORCAMENTO = TRANS.NUM_ORCAMENTO
AND ITEM_PED.CD_ITEM_PEDIDO = TRANS.CD_ITEM_PEDIDO
AND TRANS.NUM_ORCAMENTO IN (
SELECT NUM_ORCAMENTO FROM TAB_TRANSACAO_GARANTECH
WHERE EXISTS(
SELECT MAX(DT_TRANSACAO), NUM_ORCAMENTO FROM TAB_TRANSACAO_GARANTECH
WHERE NUM_ORCAMENTO = 957517 GROUP BY NUM_ORCAMENTO
)
)
)
LEFT JOIN TAB_GARANTECH_RETORNO_ENQUADRAMENTO TGRE
ON(TGRE.cd_produto = ITEM_PED.CD_PRODUTO)
LEFT JOIN TAB_GARANTECH_TABELA_PRECO AS TGTP
ON (TGTP.cd_plano_garantech=TGRE.cd_plano_garantech
AND TGTP.vig_garantia_estendida=TGRE.vig_garantia_estendida
AND TGTP.vig_garantia_fab_pecas =TGRE.vig_garantia_fab_pecas
AND TGTP.tp_garantia=TGRE.tp_garantia
AND TGTP.tp_registro=TGRE.tp_registro
)
WHERE ITEM_PED.NUM_ORCAMENTO = 957517
AND ITEM_PED.CD_ITEM_PEDIDO = 1
GROUP BY ITEM_PED.NUM_ORCAMENTO,
ITEM_PED.CD_ITEM_PEDIDO,
ITEM_PED.CD_PRODUTO,
ITEM_PED.NUM_PEDIDO,
ITEM_PED.QTD_ITEM,
TGRE.VIG_GARANTIA_ESTENDIDA,
--TRANS.DT_TRANSACAO,
TRANS.CD_TRANSACAO_GARANTECH,
TRANS.DT_TRANSACAO;