Уважаемые, профи, может кто подкинет идейку как решаить такую задачку.
База — 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
Не спрашивайте, зачем мне это — задача ИМЕННО такая. Может кто хоть чем поможет?
Всем большой сэнькс
P_>Уважаемые, профи, может кто подкинет идейку как решаить такую задачку.
P_>База — MS Access.
P_>Имеется таблица с двумя колонками primary key — надо на её основе создать другую, в которой primary key будет только первая колонка, а все повторы расписываются в новых столбцах с добавлением номера к имени колонки.
Если б база была на MSSQL, то самое простое решение было бы — сделать OLAP-куб: одно измерение = k1, другое измерение = k2, и дальше, подключившись из Excel, ставить эти измерения как хочется — хоть как в исходной таблице, хоть как в требуемой таблице.
На MSSQL'е так же можно написать охренительную хранимую процедуру по развертыванию ключа, которая сама будет генерить строки-запросы для создания и заполнения требуемой таблицы — и запускать их с помощью
exec( @str)
Но что-то мне подсказывает — вряд ли это будет работать в MSAccess.
Я так вижу только один путь — програмно генерить описание таблицы + программно же её заполнять. И практически никакого sql
Здравствуйте, Arsu, Вы писали:
A>Если б база была на MSSQL...
Эх... если бы... Хотя, если честно, про OLAP-куб не слыхал
A>Я так вижу только один путь — програмно генерить описание таблицы + программно же её заполнять. И практически никакого sql
Так я умею
Всё равно спасибо
Здравствуйте, Partyzan_, Вы писали:
P_>Уважаемые, профи, может кто подкинет идейку как решаить такую задачку.
P_>База — MS Access.
P_>Имеется таблица с двумя колонками primary key — надо на её основе создать другую, в которой primary key будет только первая колонка, а все повторы расписываются в новых столбцах с добавлением номера к имени колонки.
Ну, именно в такой постановке задача смысла не имеет.
Скорее всего то, чего ты на самом деле хочешь, в Access достигается оператором TRANSFORM ... PIVOT. См. хелп по Crosstab Query.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
A>>Если б база была на MSSQL...
P_>Эх... если бы... Хотя, если честно, про OLAP-куб не слыхал
Это спец. приблуда для MSSQL — MS Analysis Servises
цикл из 8 статей