Итак, есть главная таблица (с именем Table1), и у одного из столбцов в этой таблице есть столбец с именем компании. и есть еще одна таблица с именем Account, и в этой таблице есть имена пользователей и названия компаний, с которыми связан пользователь. поэтому должна отображаться только информация в таблице 1, связанная с компанией пользователя, если только она не является администратором.
Я работаю над приложением APEX для Oracle
В настоящее время у меня есть запрос, который выглядит следующим образом:
Select
SUPPLIER,
sum(NUMBER_OF_TICKETS) TICKETS,
round((sum(NUMBER_OF_TICKETS*AMOUNT_PAYABLE__FOREIGN_CUR)*.1),2) COMMISION,
round(sum(NUMBER_OF_TICKETS*AMOUNT_PAYABLE__FOREIGN_CUR),2) TOTAL_SALES,
round((sum(NUMBER_OF_TICKETS*AMOUNT_PAYABLE__FOREIGN_CUR)-(sum(NUMBER_OF_TICKETS*AMOUNT_PAYABLE__FOREIGN_CUR)*.1)),2) COMPANY_OWE,
CURRENCY
FROM TABLE1
WHERE
Supplier = (select COMPANYNAME from Account where lower(USERNAME)=lower(:APP_USER)) AND
PURCHASE_DATE_AND_TIME >= TO_DATE(:P2_START)
AND PURCHASE_DATE_AND_TIME < TO_DATE(:P2_END)+ 1
group by
SUPPLIER,
CURRENCY
Я работаю в беду с функцией "ГДЕ". Потому что я в основном хочу иметь if ... then ... (или оператор case в этом случае), где
IF
((выберите COMPANYNAME из учетной записи, где ниже (USERNAME) = ниже (: APP_USER)) == 'COMPANY1' AND (выберите USERTYPE из учетной записи, где ниже (USERNAME) = ниже (: APP_USER)) == 'ADMIN')
THEN
показать все строки; aka, Поставщик = (выберите COMPANYNAME из BBAccount, где ниже (USERNAME) = ниже (: APP_USER)) в запросе
Кто-нибудь есть какие-либо идеи о том, как go о написании запроса для этого?
Я пытался сделать
Случай оператор Когда оператор Тогда NULL
Это не работает
Я попытался нарисовать диаграмму, дайте мне знать, если это сделает это более ясным:
Диаграмма