Витя_а
Дата: 30.05.2006 17:31:47
есть таблица транзакций, столбцы:
date_t - дата транзакции
code - код транзакции
reason - успешна/ неуспешна транзакция (1/0)
нужно получить результат в виде таблицы со столбцами, успешных транзакций:
date_t - дата транзакции
и далее разбивка по кодам транзакций
code_1 - количество транзакций с кодом 1
code_2 - количество транзакций с кодом 2
code_3 - количество транзакций с кодом 3
vsego_uspeh - всего успешных транзакций
percent - процент успешных из всех транзакций
vsego - всего и успешных и нет
Prosto Maria
Дата: 30.05.2006 17:46:46
select date_t,
sum(decode(code,1,1,0)) Code1,
sum(decode(code,2,1,0)) Code2,
sum(decode(code,3,1,0)) Code3,
Sum(reason) vsego_uspeh_date,
Sum(sign(reason+1)) vsego_date,
sum(Sum(reason)) over () vsego_uspeh ,
Sum(Sum(sign(reason+1))) over() vsego
--percent
from
(select 1 code,TO_DATE('03/01/2006','mm/dd/yyyy') date_t,1 reason from dual
union all
select 1 code,TO_DATE('03/02/2006','mm/dd/yyyy') date_t,1 reason from dual
union all
select 2 code,TO_DATE('03/02/2006','mm/dd/yyyy') date_t,0 reason from dual
union all
select 2 code,TO_DATE('03/02/2006','mm/dd/yyyy') date_t,0 reason from dual
union all
select 3 code,TO_DATE('03/01/2006','mm/dd/yyyy') date_t,1 reason from dual
union all
select 3 code,TO_DATE('03/01/2006','mm/dd/yyyy') date_t,1 reason from dual
) Q
group by date_t
Витя_а
Дата: 31.05.2006 10:52:57
если коды транзакций передается параметром v_code (1,2,3,4,5), количество значений в списке может меняться, например v_code (1,2) или v_code (3,5,7). Как в таком случае реализовать процедуру?