как написать select в PL/SQL через переменную для отчета используя case? - вопрос №3521914

ниже запрос для отчета в котором нужно сравнить возвращенные данные в столбцах <code>dat_prev</code>, <code>dat_cur</code>. B запросе использую переменные <code>:v_datn1</code>, <code>:v_datk1</code>, <code>:v_datn2</code>, <code>:v_datk2 </code> для того, чтобы прописать период.

select l.TIP, l.N_TIP, l.KOD, l.NAIM, l.ADRES, l.ZAV_NOM, l.OBJ_NAIM, f.dat, (case when to_date(f.dat) between to_date(:v_datn1) and to_date(:v_datk1) then f.voda_k else 0 end ) dat_prev, (case when to_date(f.dat) between to_date(:v_datn2) and to_date(:v_datk2) then f.voda_k else 0 end ) dat_cur from rv_potreb_obj l left join wv_nach_fino f on (l.tip=f.tip); Проблема заключается в том, что case не фильтрует по условию, то есть какой период в переменных я бы не прописала, он мне возвращает все данные за все время. Если использовать условие where, то каким образом прописать и как тогда в этом случае использовать case? Прошу различные варианты описать, т. к. новичок.
18.11.19
0 ответов
Ответов пока нет

Alexander

Читать ответы
Посмотреть всех экспертов из раздела Технологии > Базы данных
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store