CftClub.ru
Клуб специалистов ЦФТ-Банк

Выборка из 2-х продуктов

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
bobojon
Участник со стажем


Вступление в Клуб: 23.02.2012
СообщениеПн Апр 23, 2012 13:30   Выборка из 2-х продуктов Ответить с цитатой
Полезность: Нет оценки
Стоит задача выборки фактических операций из продукта "Кредиты" и "Привлечение и размещение средств" и объедение выдачу и гашений в отдельные колонки excel.

Просьба пример какой-нибудь кинуть....
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПн Апр 23, 2012 13:48   Re: Выборка из 2-х продуктов Ответить с цитатой
Полезность: Нет оценки
bobojon пишет:
Стоит задача выборки фактических операций из продукта "Кредиты" и "Привлечение и размещение средств" и объедение выдачу и гашений в отдельные колонки excel.

Просьба пример какой-нибудь кинуть....


Код:

select f(   f.[OPER]
      ,   f.[DATE]
      ,   F.[SUMMA]
      ,   decode(   (select a(1) in ::[BANKS_LOANS] all where a.[LIST_FACT_PAY] = f%collection)
            ,null,'Кредит'
            ,'Межбанк')
) in ::[FACT_OPER] all
where   f%collection in


(
select cr(cr.[LIST_PAY]) in ::[PR_CRED] all
union all
select d(d.[LIST_FACT_PAY]) in ::[BANKS_LOANS] all
)


   and f.[OPER] in (select v(v) in ::[VID_OPER_DOG] where v.[ code ] in ('ВЫДАЧА', 'ГАШЕНИЕ'))


Последний раз редактировалось: Random (Вт Апр 24, 2012 06:50), всего редактировалось 1 раз
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПн Апр 23, 2012 14:53    Ответить с цитатой
Полезность: Нет оценки
мне кажется, код не взлетит. Количество колонок возвращаемых объединяемыми select, не совпадает Smile
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПн Апр 23, 2012 14:56   Re: Выборка из 2-х продуктов Ответить с цитатой
Полезность: 1
bobojon пишет:

Просьба пример какой-нибудь кинуть....


Как-то примерно так для гашения в нац. валюте:

Код:

pay_sum [SUMMA];
sys_val ref [FT_MONEY];
begin

sys_val:= ::[SYSTEM].[SYS_MAIN_VAL];

select fo(sum(fo.[SUMMA])) in
   (
      select fo(sum(fo.[SUMMA]) : SUMMA)
      in ::[FACT_OPER],  (::[PR_CRED] : cr) all
      where
      cr.[LIST_PAY] = fo%collection
      and fo.[OPER] in  (::[VID_OPER_DOG]([ CODE]='ГАШЕНИЕ_КРЕД'), ::[VID_OPER_DOG]([ CODE]='ГАШЕН_ЗАДОЛЖ_КР'))
      and nvl(fo.[VALUTA], cr.[FT_CREDIT])=sys_val
   UNION ALL   
      select fo(sum(fo.[SUMMA]) : SUMMA)
      in ::[FACT_OPER], (::[BANKS_LOANS] : bl) all
      where
      bl.[LIST_FACT_PAY] = fo%collection
      and fo.[OPER] in (::[VID_OPER_DOG]([ CODE]='BL_CLOSE_MAIN'), ::[VID_OPER_DOG]([ code]='BL_CLOSE_DEBT'))
      and nvl(fo.[VALUTA], bl.[CURRENCY])=sys_val
   )
into pay_sum;

end;


Последний раз редактировалось: devor (Пн Апр 23, 2012 18:57), всего редактировалось 3 раз(а)
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПн Апр 23, 2012 14:58    Ответить с цитатой
Полезность: Нет оценки
Почему-то тэг Code не сработал :/
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПн Апр 23, 2012 15:04    Ответить с цитатой
Полезность: Нет оценки
devor пишет:
Почему-то тэг Code не сработал :/


devor пишет:

([CODE]='ГАШЕНИЕ_КРЕД')
([CODE]='BL_CLOSE_MAIN')


И в правду чего это он? Laughing
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПн Апр 23, 2012 15:05    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
devor пишет:
Почему-то тэг Code не сработал :/


devor пишет:

([CODE]='ГАШЕНИЕ_КРЕД')
([CODE]='BL_CLOSE_MAIN')


И в правду чего это он? Laughing


слона-то я и не заметил Smile
добавил пробелы
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеВт Апр 24, 2012 06:47    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:
мне кажется, код не взлетит. Количество колонок возвращаемых объединяемыми select, не совпадает Smile


ГДЕ?!
Код:
(select cr(cr.[LIST_PAY]) in ::[PR_CRED] all
   union all
   select d(d.[LIST_FACT_PAY]) in ::[BANKS_LOANS] all)


Это место, где есть объединение. В других местах его нет.

Хотя я согласен, я отманьячил Smile
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеВт Апр 24, 2012 07:12    Ответить с цитатой
Полезность: Нет оценки
Random пишет:

Хотя я согласен, я отманьячил Smile

Да, твой вариант довольно медленный.
Можно еще с вьюшкой vw_c2o_fact_oper заджойнить Smile
bobojon
Участник со стажем


Вступление в Клуб: 23.02.2012
СообщениеСр Апр 25, 2012 07:50   Re: Выборка из 2-х продуктов Ответить с цитатой
Полезность: Нет оценки
devor пишет:
bobojon пишет:

Просьба пример какой-нибудь кинуть....


Как-то примерно так для гашения в нац. валюте:

Код:

pay_sum [SUMMA];
sys_val ref [FT_MONEY];
begin

sys_val:= ::[SYSTEM].[SYS_MAIN_VAL];

select fo(sum(fo.[SUMMA])) in
   (
      select fo(sum(fo.[SUMMA]) : SUMMA)
      in ::[FACT_OPER],  (::[PR_CRED] : cr) all
      where
      cr.[LIST_PAY] = fo%collection
      and fo.[OPER] in  (::[VID_OPER_DOG]([ CODE]='ГАШЕНИЕ_КРЕД'), ::[VID_OPER_DOG]([ CODE]='ГАШЕН_ЗАДОЛЖ_КР'))
      and nvl(fo.[VALUTA], cr.[FT_CREDIT])=sys_val
   UNION ALL   
      select fo(sum(fo.[SUMMA]) : SUMMA)
      in ::[FACT_OPER], (::[BANKS_LOANS] : bl) all
      where
      bl.[LIST_FACT_PAY] = fo%collection
      and fo.[OPER] in (::[VID_OPER_DOG]([ CODE]='BL_CLOSE_MAIN'), ::[VID_OPER_DOG]([ code]='BL_CLOSE_DEBT'))
      and nvl(fo.[VALUTA], bl.[CURRENCY])=sys_val
   )
into pay_sum;

end;

У меня выборка по нескольким критериям.
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеСр Апр 25, 2012 09:13   Re: Выборка из 2-х продуктов Ответить с цитатой
Полезность: 1
bobojon пишет:

У меня выборка по нескольким критериям.


Попросил "пример какой-нибудь кинуть" как выдачи и гашения из двух продуктов собрать - я вполне рабочий пример и привел.

Тут не форум экстрасенсов, чтобы нужные критерии угадывать.
bobojon
Участник со стажем


Вступление в Клуб: 23.02.2012
СообщениеСр Апр 25, 2012 09:39   Re: Выборка из 2-х продуктов Ответить с цитатой
Полезность: Нет оценки
devor пишет:
bobojon пишет:

У меня выборка по нескольким критериям.


Попросил "пример какой-нибудь кинуть" как выдачи и гашения из двух продуктов собрать - я вполне рабочий пример и привел.

Тут не форум экстрасенсов, чтобы нужные критерии угадывать.

Извини.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru