Pular para o conteúdo

Fóruns SQL e PL/SQL Eliminar dados por data consulta Eliminar dados por data consulta

#105207
rman
Participante

    @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.