Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Pivot c Подзапросом / 12 сообщений из 12, страница 1 из 1
07.04.2017, 13:24
    #39434781
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
Пришу вот такой вот код:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
;
select * from 
(
       select version,id,comm
              from uib2.r_test
)
pivot
(
    count(id)
    for id in (select 1 as i,2 as j from dual)
)
order by version,comm
;


После апуска, выводит ошибку - Отсутствует выражение и подчеркивает select в подзапросе
почему так делает не могу понять, вроде всё по учебнику делаю (((
Помогите пожалуйста (
...
Рейтинг: 0 / 0
07.04.2017, 13:30
    #39434782
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
RMagistr2015вроде всё по учебнику делаюПротри глазки.
RTFM pivot_clause (FAQ) : "A subquery is used only …"
...
Рейтинг: 0 / 0
07.04.2017, 13:38
    #39434790
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
ElicRMagistr2015вроде всё по учебнику делаюПротри глазки.
RTFM pivot_clause (FAQ) : "A subquery is used only …"

Не очень понял честно говоря как это работает (((
...
Рейтинг: 0 / 0
07.04.2017, 13:39
    #39434792
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
ElicRMagistr2015вроде всё по учебнику делаюПротри глазки.
RTFM pivot_clause (FAQ) : "A subquery is used only …"

A subquery is used only in conjunction with the XML keyword
Как это понять? ЧТо куда должно быть вставленно? (с) )))
...
Рейтинг: 0 / 0
07.04.2017, 14:08
    #39434826
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
"Ну тупые..." (с)
RTFM pivot_clause::= (FAQ)
...
Рейтинг: 0 / 0
07.04.2017, 14:14
    #39434830
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
Elic"Ну тупые..." (с)
RTFM pivot_clause::= (FAQ)
Блин, наверное тупые (((
Какуой тут принцип-то? Какой замысел такой конструкции?
...
Рейтинг: 0 / 0
07.04.2017, 14:17
    #39434833
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
RMagistr2015Какой замысел такой конструкции?Не бывает динамического количества столбцов в Oracle-е.
...
Рейтинг: 0 / 0
07.04.2017, 14:21
    #39434838
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
ElicRMagistr2015Какой замысел такой конструкции?Не бывает динамического количества столбцов в Oracle-е.
а как тогда можно динамически получать эти столбцы? Есть выход? Универсализировать данный запрос...?
...
Рейтинг: 0 / 0
07.04.2017, 14:23
    #39434841
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
RMagistr2015а как тогда можно динамически получать эти столбцы? Есть выход? Универсализировать данный запрос...?Добавь уже, наконец, XML, придурок, и увидишь.
...
Рейтинг: 0 / 0
07.04.2017, 14:31
    #39434846
Pivot c Подзапросом
RMagistr2015
Код: plsql
1.
2.
    count(id)
    for id in (select 1 as i,2 as j from dual)



PIVOT текстом:
Количество(id)
сгруппировав по полю ID, где ID равен следующим значениям ('значение1','значени2','и','так','далее')
и запихнуть Количество(id) в столбцы с названиями равными этим значениям


PIVOT простым SQL'ем
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with table1 as (select '1' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'значение1' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'значение2' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'и' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'так' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'далее' as id, 'qwee' as comm, '05.1' as version from dual

)

select a.*,"значение1","значение2","и","так","далее" from  
(select version, id, comm from table1) a
FULL JOIN (select count(id) as "значение1", id from table1 where id = 'значение1' group by id) b on a.id = b.id
FULL JOIN (select count(id) as "значение2", id from table1 where id = 'значение2' group by id) c on a.id = c.id
FULL JOIN (select count(id) as "и", id from table1 where id = 'и' group by id) d on a.id = d.id 
FULL JOIN (select count(id) as "так", id from table1 where id = 'так' group by id) e on a.id = e.id
FULL JOIN (select count(id) as "далее", id from table1 where id = 'далее' group by id) f on a.id = f.id
where "значение1" is not null 
or "значение2" is not null
or "и" is not null
or "так" is not null
or "далее" is not null
...
Рейтинг: 0 / 0
07.04.2017, 14:38
    #39434850
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
Папа, объясни мне PIVOTRMagistr2015
Код: plsql
1.
2.
    count(id)
    for id in (select 1 as i,2 as j from dual)



PIVOT текстом:
Количество(id)
сгруппировав по полю ID, где ID равен следующим значениям ('значение1','значени2','и','так','далее')
и запихнуть Количество(id) в столбцы с названиями равными этим значениям


PIVOT простым SQL'ем
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with table1 as (select '1' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'значение1' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'значение2' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'и' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'так' as id, 'qwee' as comm, '05.1' as version from dual union all
select 'далее' as id, 'qwee' as comm, '05.1' as version from dual

)

select a.*,"значение1","значение2","и","так","далее" from  
(select version, id, comm from table1) a
FULL JOIN (select count(id) as "значение1", id from table1 where id = 'значение1' group by id) b on a.id = b.id
FULL JOIN (select count(id) as "значение2", id from table1 where id = 'значение2' group by id) c on a.id = c.id
FULL JOIN (select count(id) as "и", id from table1 where id = 'и' group by id) d on a.id = d.id 
FULL JOIN (select count(id) as "так", id from table1 where id = 'так' group by id) e on a.id = e.id
FULL JOIN (select count(id) as "далее", id from table1 where id = 'далее' group by id) f on a.id = f.id
where "значение1" is not null 
or "значение2" is not null
or "и" is not null
or "так" is not null
or "далее" is not null


Через динамический SQL?
...
Рейтинг: 0 / 0
07.04.2017, 14:39
    #39434852
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Pivot c Подзапросом
Папа, объясни мне PIVOT
Ладно, друзья )))) Пятница, видимо просто голова уже не хочет думать ))) Спасибо ))))
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Pivot c Подзапросом / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]