Возвращать ноль, если не возвращено ни одной строки (в сложном запросе)

Я использую следующий запрос в Oracle. Цель моего запроса - вернуть ноль, если строки не возвращены. в противном случае я получаю ошибку "данные не найдены". я гуглил и наткнулся на коулесе на stackru.i использовал его следующим образом:

SELECT COALESCE( (select sum(transaction_detail.amount)
from
    lookup_state , lookup_city , lookup_bank ,transaction_detail
where
   transaction_detail.bank_id = lookup_bank.bank_id
and
   lookup_bank.city_id = lookup_city.city_id
and
   lookup_city.state_id = lookup_state.state_id
and 
   lookup_state.state_id = 3 
group by
   lookup_state.state_name, lookup_state.state_id) , 0) into state_total_amount ;

я получаю следующую ошибку:-

    from not present where expected

Что я делаю неправильно. Заранее спасибо.

1 ответ

Решение

Попробуй это:

select coalesce(sum(transaction_detail.amount),0)
into state_total_amount
from
    lookup_state , lookup_city , lookup_bank ,transaction_detail
where
   transaction_detail.bank_id = lookup_bank.bank_id
and
   lookup_bank.city_id = lookup_city.city_id
and
   lookup_city.state_id = lookup_state.state_id
and 
   lookup_state.state_id = 3;
Другие вопросы по тегам