Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Не могу разобраться с группами  [new]
Guest75399
Guest
Есть 4 группы (TABL).

1) для группы 1 : посчитать ее сумму
2) для группы 2 : посчитать ее сумму
3) для группы 3 : посчитать ее сумму + сумма группы 2
4) далее надо вставить какую-то строчку 'ABCD' где бы считалась такое: -(группа3 - группа1)
5) для группы 4 : посчитать ее сумму + строчка 'ABCD'

Не подскажите, как это написать?




         select  1 as TABL, 'Vasya' as Names, 1 as abc, 2 as dfg  from dual union all
         select  1, 'Petya', 3, 4  from dual  
         
                                  union all  
                                  
        select  2 as TABL, 'Kolya' as Names, 5 as abc, 6 as dfg  from dual union all
        select 2, 'Masha', 7, 8  from dual    
        
                                  union all      
                                  
        select  3 as TABL, 'Sveta' as Names, 6 as abc, 2 as dfg  from dual union all
        select  3,'Alex', 3, 8  from dual  
        
                                  union all     
                                  
        select 4 as TABL, 'Oleg' as Names, 1 as abc, 5 as dfg  from dual union all
        select 4, 'Ivan', 5, 4  from dual  
7 мар 09, 22:01    [6900465]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Guest75399, думаю, Вам лучше будет приложить желаемый результат запроса в виде таблицы. Сумму какого столбца считать? Какие столбцы вывести в итоге в конце? В каком порядке?
8 мар 09, 14:55    [6901153]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
Guest75399
Guest
да, по всем столбцам нужно вывести результат
8 мар 09, 20:42    [6901456]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Guest75399,

автор
Вам лучше будет приложить желаемый результат запроса в виде таблицы
8 мар 09, 20:57    [6901467]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
Guest75399
Guest
suPPLer,


Guest Есть 4 группы (TABL).

1) для группы 1 : посчитать ее сумму
2) для группы 2 : посчитать ее сумму
3) для группы 3 : посчитать ее сумму + сумма группы 2
4) далее надо вставить какую-то строчку 'ABCD' где бы считалась такое: -(группа3 - группа1)
5) для группы 4 : посчитать ее сумму + строчка 'ABCD'


 
TABL                   NAMES                            ABC                    DFG                    
---------------------- -------------------------------- ----------------------
1                      Vasya                            1                      2                      
1                      Petya                            3                      4 
                                        [color=red]    4                      6[/color]

                     
2                      Kolya                             5                      6                      
2                      Masha                            7                      8 
                                        [color=red]     12                     14[/color]

                     
3                      Sveta                            6                      2                      
3                      Alex                              3                      8  
                                        [color=red]   21                     24[/color]

[color=red]      ABCD                             -19                    -18  [/color]

                    
4                      Oleg                             1                      5                      
4                      Ivan                             5                      4                      
                                     [color=red]     -13                    -9[/color]
                                                        
8 мар 09, 21:27    [6901494]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
Guest75399
Guest
Guest75399,
TABL                 NAMES                      ABC                    DFG                    
---------------------- -------------------------------- ----------------------
1                      Vasya                            1                      2                      
1                      Petya                            3                      4 
                                                           4                      6

                     
2                      Kolya                             5                      6                      
2                      Masha                            7                      8 
                                                          12                     14

                     
3                      Sveta                            6                      2                      
3                      Alex                              3                      8  
                                                          21                     24

                     ABCD                             -19                    -18 

                    
4                      Oleg                             1                      5                      
4                      Ivan                             5                      4                      
                                                        -13                    -9
8 мар 09, 21:31    [6901499]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
Since you did not post version, I will assume you are on 10g:

with t as (
            select  1 as TABL, 'Vasya' as Names, 1 as abc, 2 as dfg  from dual union all
            select  1, 'Petya', 3, 4  from dual union all  
            select  2 as TABL, 'Kolya' as Names, 5 as abc, 6 as dfg  from dual union all
            select 2, 'Masha', 7, 8  from dual union all      
            select  3 as TABL, 'Sveta' as Names, 6 as abc, 2 as dfg  from dual union all
            select  3,'Alex', 3, 8  from dual union all     
            select 4 as TABL, 'Oleg' as Names, 1 as abc, 5 as dfg  from dual union all
            select 4, 'Ivan', 5, 4  from dual
           )
select  tabl,
        names,
        abc,
        dfg
  from  t
  model
    dimension by(
                 tabl tabl_dim,
                 row_number() over(partition by tabl order by names) rn
                )
    measures(
             tabl,
             names,
             abc,
             dfg,
             count(*) over(partition by tabl) cnt
            )
    rules(
          abc[1,cnt[1,1] + 1]   = sum(abc)[1,any],
          dfg[1,cnt[1,1] + 1]   = sum(dfg)[1,any],
          abc[2,cnt[2,1] + 1]   = sum(abc)[2,any],
          dfg[2,cnt[2,1] + 1]   = sum(dfg)[2,any],
          abc[3,cnt[3,1] + 1]   = sum(abc)[3,any] + abc[2,cnt[2,1] + 1],
          dfg[3,cnt[3,1] + 1]   = sum(dfg)[3,any] + dfg[2,cnt[2,1] + 1],
          names[3,cnt[3,1] + 2] = 'ABCD',
          abc[3,cnt[3,1] + 2]   = -(abc[3,cnt[3,1] + 1] - abc[1,cnt[1,1] + 1]),
          dfg[3,cnt[3,1] + 2]   = -(dfg[3,cnt[3,1] + 1] - dfg[1,cnt[1,1] + 1]),
          abc[4,cnt[4,1] + 1]   = sum(abc)[4,any] + abc[3,cnt[2,1] + 2],
          dfg[4,cnt[4,1] + 1]   = sum(dfg)[4,any] + dfg[3,cnt[2,1] + 2]
         )
  order by tabl_dim,
           rn
/

      TABL NAMES        ABC        DFG
---------- ----- ---------- ----------
         1 Petya          3          4
         1 Vasya          1          2
                          4          6
         2 Kolya          5          6
         2 Masha          7          8
                         12         14
         3 Alex           3          8
         3 Sveta          6          2
                         21         24
           ABCD         -17        -18
         4 Ivan           5          4

      TABL NAMES        ABC        DFG
---------- ----- ---------- ----------
         4 Oleg           1          5
                        -11         -9

13 rows selected.

SQL> 

SY.
9 мар 09, 02:23    [6901755]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
Guest75399
Guest
SY,

Спасибо за ответ!
Но вроде отличаются результаты.

Должно быть:
-------------------------------------------------------
ABCD -19 -18


4 Oleg 1 5
4 Ivan 5 4
-13 -9
-------------------------------------------------------
9 мар 09, 05:43    [6901779]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
Guest75399
Guest
Guest75399,

Спасибо за ответ!
Но вроде отличаются результаты.

Должно быть:

   
                      ABCD                           -19                    -18 

                    
4                      Oleg                             1                      5                      
4                      Ivan                             5                      4                      
                                                        -13                    -9
9 мар 09, 05:45    [6901780]     Ответить | Цитировать Сообщить модератору
 Re: Не могу разобраться с группами  [new]
Guest75399
Guest
нет, это у меня опечатка :)
9 мар 09, 07:58    [6901797]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить