"Развернуть" primary key
От: Partyzan_  
Дата: 04.10.04 17:32
Оценка:
Уважаемые, профи, может кто подкинет идейку как решаить такую задачку.
База — MS Access.
Имеется таблица с двумя колонками primary key — надо на её основе создать другую, в которой primary key будет только первая колонка, а все повторы расписываются в новых столбцах с добавлением номера к имени колонки.
Пример:

Table 1
k1 k2 a b
----------
1  1  3 0
1  2  2 1
1  3  2 1
2  7  4 5
2  8  8 9


в итоге должно получться:

Table 2


k1  k2_1 a_1 a_2 k2_2 a_2 b_2 k2_3 a_3 b_3
-------------------------------------------
1   1    3   0    2    2   1    3   2   1
2   7    4   5    8    8   9


Не спрашивайте, зачем мне это — задача ИМЕННО такая. Может кто хоть чем поможет?
Всем большой сэнькс
Re: "Развернуть" primary key
От: Arsu Россия  
Дата: 06.10.04 07:28
Оценка:
P_>Уважаемые, профи, может кто подкинет идейку как решаить такую задачку.
P_>База — MS Access.
P_>Имеется таблица с двумя колонками primary key — надо на её основе создать другую, в которой primary key будет только первая колонка, а все повторы расписываются в новых столбцах с добавлением номера к имени колонки.

Если б база была на MSSQL, то самое простое решение было бы — сделать OLAP-куб: одно измерение = k1, другое измерение = k2, и дальше, подключившись из Excel, ставить эти измерения как хочется — хоть как в исходной таблице, хоть как в требуемой таблице.

На MSSQL'е так же можно написать охренительную хранимую процедуру по развертыванию ключа, которая сама будет генерить строки-запросы для создания и заполнения требуемой таблицы — и запускать их с помощью
exec( @str)
Но что-то мне подсказывает — вряд ли это будет работать в MSAccess.

Я так вижу только один путь — програмно генерить описание таблицы + программно же её заполнять. И практически никакого sql
Re[2]: "Развернуть" primary key
От: Partyzan_  
Дата: 06.10.04 12:59
Оценка:
Здравствуйте, Arsu, Вы писали:

A>Если б база была на MSSQL...


Эх... если бы... Хотя, если честно, про OLAP-куб не слыхал

A>Я так вижу только один путь — програмно генерить описание таблицы + программно же её заполнять. И практически никакого sql


Так я умею
Всё равно спасибо
Re: "Развернуть" primary key
От: Sinclair Россия https://github.com/evilguest/
Дата: 07.10.04 06:07
Оценка:
Здравствуйте, Partyzan_, Вы писали:

P_>Уважаемые, профи, может кто подкинет идейку как решаить такую задачку.

P_>База — MS Access.
P_>Имеется таблица с двумя колонками primary key — надо на её основе создать другую, в которой primary key будет только первая колонка, а все повторы расписываются в новых столбцах с добавлением номера к имени колонки.
Ну, именно в такой постановке задача смысла не имеет.
Скорее всего то, чего ты на самом деле хочешь, в Access достигается оператором TRANSFORM ... PIVOT. См. хелп по Crosstab Query.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: "Развернуть" primary key
От: Arsu Россия  
Дата: 07.10.04 07:02
Оценка:
A>>Если б база была на MSSQL...

P_>Эх... если бы... Хотя, если честно, про OLAP-куб не слыхал


Это спец. приблуда для MSSQL — MS Analysis Servises

цикл из 8 статей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.