Возвращать ноль, если не возвращено ни одной строки (в сложном запросе)
Я использую следующий запрос в 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;