Pular para o conteúdo

Fóruns SQL e PL/SQL Select mesmo campo, datas diferentes. Select mesmo campo, datas diferentes.

#105592
marlontk
Participante

    1º Cuidado quando se utiliza a comparação sysdate(data+time) ela sempre representa a data atual.

    Segue sugestões para o sql

    1)
    select sum(valor) valor1,
    sum(select valor from venda b where to_char(b.data_venda,’mm/yyyy’) = to_char(sysdate,’mm/yyyy’)) valor2
    from venda v
    where trunc(data_venda) = trunc(sysdate)

    2)
    select sum(case when trunc(data_venda) = trunc(sysdate) then valor else 0 end) valor1,
    sum(valor) valor2
    from venda v
    where to_char(b.data_venda,’mm/yyyy’) = to_char(sysdate,’mm/yyyy’)

    3)
    select sum(case when trunc(data_venda) = trunc(sysdate) then valor else 0 end) valor1,
    sum(valor) valor2
    from venda v
    where trunc(b.data_venda) = between to_date(’01/’||to_char(sysdate,’mm/yyyy’),’dd/mm/yyyy’) and last_day(trunc(sysdate))

    Em sql muitas coisas são possíveis de se fazer de maneiras diferentes.

    Neste teu caso cuidar o sql para ver a questão de uso de índice essas operações de conversão de data não utiliza índice se criado sem a aplicação deste no índice.

    Não executei os sqls então pode ter algum detalhe de sintaxe que apresente erro, espero que ajude.