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

Откуда: Москва
Сообщений: 16
Подскажите как сделать?
На примере таблицы:
----------------------
id prod kol
----------------------
anna red 3
anna blow 2
jenq blow 1
jenq red 1
ira green 4


Нужно изменить на:
---------------------------------
id red blow green
---------------------------------
anna 3 2 0
jenq 1 1 0
ira 0 0 4
21 мар 06, 19:07    [2473414]     Ответить | Цитировать Сообщить модератору
 Re: модернизировать  [new]
Igor Morenko
Member

Откуда: Tula
Сообщений: 308
SELECT id,
           (SELECT kol FROM tab b WHERE prod='red' AND b.id=a.id) red,
           (SELECT kol FROM tab b WHERE prod='blow' AND b.id=a.id) blow,
           (SELECT kol FROM tab b WHERE prod='green' AND b.id=a.id) green
FROM tab a
Или если есть дублирующие строки
SELECT id,
           (SELECT SUM(kol) FROM tab b WHERE prod='red' AND b.id=a.id) red,
           (SELECT SUM(kol) FROM tab b WHERE prod='blow' AND b.id=a.id) blow,
           (SELECT SUM(kol) FROM tab b WHERE prod='green' AND b.id=a.id) green
FROM tab a
21 мар 06, 19:12    [2473434]     Ответить | Цитировать Сообщить модератору
 Re: модернизировать  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116133
SELECT id,
           NVL(max(DECODE(prod,'red',kol)),0) red,
           NVL(max(DECODE(prod,'blue',kol)),0) blue,
           NVL(max(DECODE(prod,'green',kol)),0) green
FROM tab a
group by id

ID         RED                                     BLUE                                    GREEN                                  
---------- --------------------------------------- --------------------------------------- ---------------------------------------
anna      	3                                      	2                                      	0
ira       	0                                      	0                                      	1
jenk      	1                                      	1                                      	0
21 мар 06, 19:26    [2473484]     Ответить | Цитировать Сообщить модератору
 Re: модернизировать  [new]
Elic
Member

Откуда:
Сообщений: 29979
Igor Morenko
Незачёт :)
21 мар 06, 19:33    [2473506]     Ответить | Цитировать Сообщить модератору
 Re: модернизировать  [new]
imagin
Member

Откуда: Москва
Сообщений: 16
to dmidek

Сработало!!!
огромная благодарность)))
22 мар 06, 11:14    [2475270]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить