powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Pivot c Подзапросом
12 сообщений из 12, страница 1 из 1
Pivot c Подзапросом
    #39434781
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришу вот такой вот код:
Код: 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
Pivot c Подзапросом
    #39434782
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015вроде всё по учебнику делаюПротри глазки.
RTFM pivot_clause (FAQ) : "A subquery is used only …"
...
Рейтинг: 0 / 0
Pivot c Подзапросом
    #39434790
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicRMagistr2015вроде всё по учебнику делаюПротри глазки.
RTFM pivot_clause (FAQ) : "A subquery is used only …"

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

A subquery is used only in conjunction with the XML keyword
Как это понять? ЧТо куда должно быть вставленно? (с) )))
...
Рейтинг: 0 / 0
Pivot c Подзапросом
    #39434826
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Ну тупые..." (с)
RTFM pivot_clause::= (FAQ)
...
Рейтинг: 0 / 0
Pivot c Подзапросом
    #39434830
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic"Ну тупые..." (с)
RTFM pivot_clause::= (FAQ)
Блин, наверное тупые (((
Какуой тут принцип-то? Какой замысел такой конструкции?
...
Рейтинг: 0 / 0
Pivot c Подзапросом
    #39434833
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Какой замысел такой конструкции?Не бывает динамического количества столбцов в Oracle-е.
...
Рейтинг: 0 / 0
Pivot c Подзапросом
    #39434838
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicRMagistr2015Какой замысел такой конструкции?Не бывает динамического количества столбцов в Oracle-е.
а как тогда можно динамически получать эти столбцы? Есть выход? Универсализировать данный запрос...?
...
Рейтинг: 0 / 0
Pivot c Подзапросом
    #39434841
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015а как тогда можно динамически получать эти столбцы? Есть выход? Универсализировать данный запрос...?Добавь уже, наконец, XML, придурок, и увидишь.
...
Рейтинг: 0 / 0
Pivot c Подзапросом
    #39434846
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
Pivot c Подзапросом
    #39434850
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа, объясни мне 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
Pivot c Подзапросом
    #39434852
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа, объясни мне PIVOT
Ладно, друзья )))) Пятница, видимо просто голова уже не хочет думать ))) Спасибо ))))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Pivot c Подзапросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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