LINUX.ORG.RU
ФорумTalks

[sql] помогите с составлением запроса

 


0

0

Есть таблица, в которой важны 2 колонки: TYPE и VAL

TYPE  VAL
---------
A     11
A     12
..    ..
A     1a
B     21
B     22
..    ..
B     2b
C     31 
C     32
..    ..
C     3c
...   ...

Nребуется для 4 значений (к примеру, A-D) TYPE вывести соответствующие значения VAL в 4 колонки одним запросом (для CREATE VIEW)

Должно получиться:

A  B  C  D
------------
11 21 31 41
12 22 32 42
.. .. .. ..
1a 2b 3c 4d

Помогите, плиз, хотя бы идеей.

скорее всего никак, новую таблицу создавай и заполняй

dimon555 ★★★★★
()

Надеюсь в твоей СУБД это прокатит)

select rn,
       max(decode(typ, 'A', val)) A,
       max(decode(typ, 'B', val)) B,
       max(decode(typ, 'C', val)) C,
       max(decode(typ, 'D', val)) D
  from (select typ, val, row_number() over(partition by typ order by val) rn
          from ( /*сюда можно подставить свой селект с выбором из четырех групп*/
                select 'A' typ, '31' val
                  from dual
                union all
                select 'A' typ, '21' val
                  from dual
                union all
                select 'A' typ, '11' val
                  from dual
                union all
                select 'B' typ, '17' val
                  from dual
                union all
                select 'B' typ, '21' val
                  from dual
                union all
                select 'B' typ, '12' val
                  from dual
                union all
                select 'B' typ, '13' val
                  from dual
                union all
                select 'C' typ, '21' val
                  from dual
                union all
                select 'C' typ, '24' val
                  from dual
                union all
                select 'C' typ, '31' val
                  from dual
                union all
                
                select 'D' typ, '11' val
                  from dual
                union all
                select 'D' typ, '12' val from dual) c)
 group by rn
RN	A 	B 	C 	D
--------------------------------
1 	11	12	21	11
2 	21	13	24	12
3 	31	17	31	
4 	  	21		

aydar ★★★★★
()
Ответ на: комментарий от saluki

>Ужас! Не зря говорят, что человеку, у которого в руках молоток, любая проблема кажется гвоздём.

Человеку, у которого в руках молоток, хочется им по чему-нибудь стукнуть

aydar ★★★★★
()
Ответ на: комментарий от aydar

> Человеку, у которого в руках молоток, хочется им по чему-нибудь стукнуть

По голове себе постучи. Хуже, по крайней мере, не станет.

saluki
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.