› Fóruns › SQL e PL/SQL › Eliminar dados por data consulta › Eliminar dados por data consulta
@rodrigok2
Dependendo da regra de negócio pode ser feito assim:
SELECT DISTINCT cod_item, cod_fornecedor, data, qtde_atual
FROM itens_historico
WHERE cod_empresa = 5 and cod_operacao '21' and cod_operacao '31'
AND data = (SELECT MAX(data) FROM itens_historico WHERE cod_empresa = 5 and cod_operacao '21' and cod_operacao '31' and qtde_atual > 0)
ORDER BY cod_item, data
Ou assim:
SELECT DISTINCT cod_item, cod_fornecedor, data, qtde_atual
FROM itens_historico
WHERE cod_empresa = 5 and cod_operacao '21' and cod_operacao '31'
AND data = (SELECT MAX(data) FROM itens_historico WHERE cod_empresa = 5 and cod_operacao '21' and cod_operacao '31')
and qtde_atual > 0
ORDER BY cod_item, data
Só algumas observações:
– Sempre que puder compare com = e não com . Com = você pode se beneficiar com índice.
– Cuidado com DISTINCT, muitas vezes é empregado de maneira errada.