Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 помогите с запросом select if  [new]
javasd11
Member

Откуда:
Сообщений: 33
Доброго времени суток. Очень нужна помощь!
Например есть четыре таблицы: cars, users, departments и join_user_department. Последняя для сязи М:N пользователя и подразделения(доступные пользователю подразделения). Мне нужно посчитать количество машин из таблицы cars в доступном пользователю подразделении. В табл. card есть колонка department_id. Если в табл. join_user_department нет айдишников пользователя, то это означает что ему доступны все подразделения и выборка из cars без условий.
нужно сделать что-то подобное:

declare
DEP_NUM  number;--количество доступных пользователю подразделений
CARS_COUNT number;--кол-во машин

BEGIN
  select count(*) into DEP_NUM from join_user_departments where user_id=?;

SELECT COUNT(*) into CARS_COUNT FROM cars where 
  IF(num!=0)--значит у пользователя есть ограничения на подразделения
  THEN department_id IN (select dep_id from join_user_departments where user_id=?);
10 апр 12, 01:04    [12390849]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом select if  [new]
sixers
Member

Откуда:
Сообщений: 146
javasd11,

SELECT CASE
         WHEN MAX(USER_ID) IS NULL THEN
          COUNT(1)
         ELSE
          COUNT(USER_ID)
       END user_cars
  FROM cars C, 
       join_user_departments D
 WHERE C.DEPT = D.DEPT(+)
   AND D.USER_ID(+) = &user_id
10 апр 12, 02:19    [12390965]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить