2015-06-11 7 views
0

У меня есть запрос, который нужно изменить, как если бы я проходил зону = Все, тогда он должен отображать все записи иначе других условий. Этот запрос я должен использовать в отчетах SSRS, он работает в этом состоянии.If else Условие в PostgresSql

select distinct zone, wardno,deptname, 
     cybertec_view_requests.statusname, 
     categoryname,opendate,probdesc 
from cybertec_view_requests 
left join cybertec_view_requests_comments on 
cybertec_view_requests_comments.reqid = cybertec_view_requests.id_ 
where zone= ? and deptname=? and 
opendate between ? and ? and categoryname=? 
    group by zone,wardno,deptname, cybertec_view_requests.statusname, 
      categoryname,opendate,probdesc 
    order by zone,wardno,deptname 
+0

Пожалуйста, помогите мне решить эту проблему. – Rock

ответ

2

попробовать это

Hear @zone is your variable to pass in the Query 

    SELECT DISTINCT zone, wardno,deptname, cybertec_view_requests.statusname, categoryname,opendate,probdesc 
    FROM   cybertec_view_requests 
    LEFT JOIN  cybertec_view_requests_comments ON cybertec_view_requests_comments.reqid = cybertec_view_requests.id_ 
    WHERE   zone= CASE WHEN @zone = 'ALL' THEN zone ELSE @zone END and deptname=? and 
        opendate between ? and ? and categoryname=? 
    GROUP BY  zone,wardno,deptname, cybertec_view_requests.statusname, 
        categoryname,opendate,probdesc 
    ORDER BY  zone,wardno,deptname 
+0

Спасибо Hiral за ваш ответ, но в Postgres мы не можем передать параметр @. он показывает мне следующую ошибку. ОШИБКА [42883] ОШИБКА: оператора не существует: @ символ меняется; Ошибка при выполнении запроса – Rock

+0

Мое условие: если я передаю зону = 'Все', тогда он должен отображать все записи без каких-либо параметров. Иначе, эта часть придет – Rock

+0

@Rock, как вы передаете ВСЕ ИЛИ ЗОН в свой запрос? –

 Смежные вопросы

  • Нет связанных вопросов^_^