Oracle APEX Report Query - Показать все строки по умолчанию - PullRequest
0 голосов
/ 13 марта 2020

Я создаю таблицу отчета, в которой пользователи могут выбрать фильтр, который будет отфильтровывать значения таблицы в зависимости от того, какой выбор они делают. (т.е. если они выберут company1, то появятся только строки с company1).

У меня проблемы с попыткой разрешить пользователю снова увидеть все значения в таблице (избавиться от отфильтрованного значения). Мой текущий запрос таков:

select 
       TRANSACTION_NUMBER,
       SUPPLIER,
       DATE_

  FROM Table1 b join Account a on b.SUPPLIER = a.companyname
    where 

        Supplier =
          (CASE
              WHEN USERTYPE(:APP_USER) = 1 THEN :P2_Supplier
              ELSE (select COMPANYNAME from Account where lower(USERNAME)=lower(:APP_USER))
          END)

    AND
     PURCHASE_DATE_AND_TIME >= TO_DATE(:P2_START)
      AND PURCHASE_DATE_AND_TIME < TO_DATE(:P2_END)+ 1



Мне бы хотелось, чтобы, когда supplier = NULL , в таблице показаны все значения (иначе как избавиться от «где» часть запроса.
Спасибо за вашу помощь!

1 Ответ

1 голос
/ 13 марта 2020

Будет ли это работать? Он не проверялся, так как исходный запрос не был исполняемым ...

select 
  Supplier...,

  FROM Company b join Account a on b.SUPPLIER = a.companyname
    where 
      (:P2_Supplier is null or
        Supplier =
          CASE
              WHEN USERTYPE(:APP_USER) = 1 THEN :P2_Supplier
              ELSE (select COMPANYNAME from Account where lower(USERNAME)=lower(:APP_USER))
          END
      )
...