Я пытаюсь отфильтровать свой запрос, зависит от того, что пользователь выбрал в период (месяц или год) Я извлекаю параметр через BIRT.Как мы можем отфильтровать запрос, который зависит от параметра, который пользователь выбирает?
Мой запрос:
SELECT DATE
FROM TABLE
WHERE Year(DATE) = Year(CURRENT_TIMESTAMP) AND Month(DATE) = Month(CURRENT_TIMESTAMP)
Мой результат:
DATE
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-02-01
2017-02-02
То, что я пытаюсь сделать, это: если пользователь выбрать год, я поставил последнее условие в комментарии, то результат должен быть:
DATE
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-02-14
2017-01-25
2017-01-26
2017-02-01
2017-02-02
2017-01-20
2017-01-20
2017-01-20
2017-01-20
2017-01-20
2017-01-20
2017-01-20
2017-01-20
2017-01-20
Я попытался с ДЕЛУ как:
CASE WHEN USER_PARAM = 'month' then Month(DATE) = Month(CURRENT_TIMESTAMP) END
Очевидно, что это не хорошо, я попытался с И/ИЛИ как:
Year(DATE) = Year(CURRENT_TIMESTAMP)
OR ('USER_PARAM' = 'MONTH' AND Month(DATE) = Month(CURRENT_TIMESTAMP))
Если 'USER_PARAM' = 'MONTH'
верно -> Это не работает, потому что у меня есть все эти годы (не текущий)
Year(DATE) = Year(CURRENT_TIMESTAMP)
AND ('USER_PARAM' = 'MONTH' AND Month(DATE) = Month(CURRENT_TIMESTAMP))
'USER_PARAM' = 'MONTH'
Если это ложно> Это не работает, потому что у меня нет никаких данных
Большое спасибо за вашу помощь! Я был на этом блоке ... близко, но заблокирован – Bob