Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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, не совпадает  |
|
 |
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')
|
И в правду чего это он?  |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Пн Апр 23, 2012 15:05   |
|
Полезность: Нет оценки
|
yaffil пишет: | devor пишет: | Почему-то тэг Code не сработал :/ |
devor пишет: |
([CODE]='ГАШЕНИЕ_КРЕД')
([CODE]='BL_CLOSE_MAIN')
|
И в правду чего это он?  |
слона-то я и не заметил
добавил пробелы |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Апр 24, 2012 06:47   |
|
Полезность: Нет оценки
|
vtar пишет: | мне кажется, код не взлетит. Количество колонок возвращаемых объединяемыми select, не совпадает  |
ГДЕ?!
Код: | (select cr(cr.[LIST_PAY]) in ::[PR_CRED] all
union all
select d(d.[LIST_FACT_PAY]) in ::[BANKS_LOANS] all) |
Это место, где есть объединение. В других местах его нет.
Хотя я согласен, я отманьячил  |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Вт Апр 24, 2012 07:12   |
|
Полезность: Нет оценки
|
Random пишет: |
Хотя я согласен, я отманьячил  |
Да, твой вариант довольно медленный.
Можно еще с вьюшкой vw_c2o_fact_oper заджойнить  |
|
 |
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 пишет: |
У меня выборка по нескольким критериям.
|
Попросил "пример какой-нибудь кинуть" как выдачи и гашения из двух продуктов собрать - я вполне рабочий пример и привел.
Тут не форум экстрасенсов, чтобы нужные критерии угадывать. |
Извини. |
|
 |
|