тройной pivot

тройной pivot!
Дата: 05.03.2011 12:43:40
подскажите как тройной сделать:

with pivot as 
( 1 id , 300 val, 400, val_1 from dual)

select * from (
select id,val,val_1 from pivot )

pivot (sum(val) for in (1 as t) )
pivot (sum(val_1) for in (1 as t) )
pivot (sum(val+val_1) for in (1 as t) )
-2-
Дата: 05.03.2011 13:00:50
подскажите как тройной сделать:

insert into holes
select bolt1
select bolt2
select bolt3
from pants
тройной pivot!
Дата: 05.03.2011 13:04:47
insert into holes
select bolt1 from pants union all
select bolt2 from pants union all
select bolt3 from pants
тройной pivot!
Дата: 05.03.2011 13:08:16
это шутка....ближе к теме


конструкция из доки, не описывает ситуацию при aggregate_function ( expr )>1


table_reference PIVOT [ XML ]
  ( aggregate_function ( expr ) [[AS] alias ]
      [, aggregate_function ( expr ) [[AS] alias ] ]...
    pivot_for_clause
    pivot_in_clause
  )
тройной pivot!
Дата: 05.03.2011 13:25:20
Товарищи, как под pivot переписать?

with pivot as 
( 1 id ,to_date('01.01.2010') sd, 300 val, 400, val_1 from dual union all
  1 id ,to_date('01.01.2010'), 300 val, 400, val_1 from -- dual union all

)

select id,sum(case when sd='01.01.2010' then val else 0 end ),
            sum(case when sd='01.02.2010' then val else 0 end ),
            sum(case when sd='01.01.2010' then val_1 else 0 end ),
            sum(case when sd='01.02.2010' then val_1 else 0 end ),
            sum(case when sd='01.01.2010' then val+val_1 else 0 end ),
            sum(case when sd='01.02.2010' then val+val_1 else 0 end )
 from pivot
-2-
Дата: 05.03.2011 13:43:52
тройной pivot!
конструкция из доки, не описывает ситуацию при aggregate_function ( expr )>1
table_reference PIVOT [ XML ]
  ( aggregate_function ( expr ) [[AS] alias ]
      [, aggregate_function ( expr ) [[AS] alias ] ]...
    pivot_for_clause
    pivot_in_clause
  )
Ну глянул бы что ли примеры там дальше, если с диаграммами не дружишь
Сергей Арсеньев
Дата: 05.03.2011 13:46:17
тройной pivot!,

что-то типа?
with t as 
(select 1 id ,to_date('01.01.2010','dd.mm.yy') sd, 300 val, 400 val_1 from dual union all
 select 1 id ,to_date('01.02.2010','dd.mm.yy'), 300 , 400 from dual -- union all
)
select * from (select id,to_char(sd,'mm') sd,sum(val) as sum_val,sum(val_1) as sum_val_1,sum(val_1+val+val_1) as sum_all from t group by id,to_char(sd,'mm'))
 pivot (
  sum(sum_val) as sum_val
  ,sum(sum_val_1) as sum_val_1
  ,sum(sum_all) as sum_all
  for sd in ('01','02')
 );
тройной pivot!
Дата: 05.03.2011 14:21:08
-2-,

Нашел,спс....просто 11-ая документация по стремному сделана