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.