powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировать результат запроса
6 сообщений из 6, страница 1 из 1
Группировать результат запроса
    #39727846
wsxedc83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Заранее прошу прощения за глупый вопрос.

Есть таблица с полями:
an_Date an_Type an_Name an_Value an_DimensionDate1 Type1 Name1 Value DimensionDate2 Type1 Name2 Value DimensionDate2 Type2 Name3 Value DimensionDate2 Type2 Name4 Value DimensionDate2 Type3 Name5 Value DimensionDate2 Type3 Name6 Value DimensionDate3 Type3 Name7 Value DimensionDate4 Type3 Name8 Value Dimension

Из неё требуется получить таблицы по каждому типу отдельно:
Type1:
an_Name Date1 Date2 an_DimensionName1 Value Value Dimension
Type2:
an_Name Date2 an_DimensionName3 Value DimensionName4 Value Dimension
Type3:
an_Name Date2 Date3 Date4 an_DimensionName5 Value DimensionName6 Value DimensionName7 Value DimensionName8 Value Dimension

Возможно ли это средствами Oracle SQL или мне на клиенте преобразовывать? Клиент на MsAccess и работает с черепашьей скоростью, так что чем меньше на нем операций - тем лучше.

Заранее спасибо всем, кто найдёт минутку ответить!
...
Рейтинг: 0 / 0
Группировать результат запроса
    #39727881
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with t (an_Date, an_Type, an_Name, an_Value, an_Dimension) as (
                  select 'Date1', 'Type1', 'Name1', 'Value1', 'Dimension1' from dual
        union all select 'Date2', 'Type1', 'Name2', 'Value2', 'Dimension2' from dual
        union all select 'Date2', 'Type2', 'Name3', 'Value3', 'Dimension3' from dual
        union all select 'Date2', 'Type2', 'Name4', 'Value4', 'Dimension4' from dual
        union all select 'Date2', 'Type3', 'Name5', 'Value5', 'Dimension5' from dual
        union all select 'Date2', 'Type3', 'Name6', 'Value6', 'Dimension6' from dual
        union all select 'Date3', 'Type3', 'Name7', 'Value7', 'Dimension7' from dual
        union all select 'Date4', 'Type3', 'Name8', 'Value8', 'Dimension8' from dual
)
select * from
(
    select an_Date, an_Name, an_Value, an_Dimension
    from t
    where an_Type = 'Type3'
)
pivot
(
    min(an_Value) for (an_Date) in ('Date2' as Date2, 'Date3' as Date3, 'Date4' as Date4)
)
order by an_name
...
Рейтинг: 0 / 0
Группировать результат запроса
    #39727973
wsxedc83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SkilledJunior,

Спасибо! Это если заранее известно количество вариантов an_Date и an_Type. А если количество вариантов может быть любое?
...
Рейтинг: 0 / 0
Группировать результат запроса
    #39727975
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wsxedc83,

Неограниченное число столбцов это как то за гранью разумного.

Можно пойти простым путем, в запросах меняются всего две строки 'TypeХХХ' и 'Date2' as Date2, ...., в цикле собираем динамически запрос для каждого an_Type и выполняем его: EXECUTE IMMEDIATE 'CREATE TABLE an_TypeХХХ as SELECT ...', а дальше что то с этими таблицами делаем.
...
Рейтинг: 0 / 0
Группировать результат запроса
    #39728394
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsxedc83А если количество вариантов может быть любое?
Нет ограничения по обоим множествам? (Name/Date)
...
Рейтинг: 0 / 0
Группировать результат запроса
    #39728661
wsxedc83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
envНет ограничения по обоим множествам? (Name/Date)
К сожалению, нет.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировать результат запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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