Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > как перевернуть таблицу


Автор: valedol 24.5.2007, 22:53
есть исходная таблица, как из нее получить другую таблицу в которой заголовками строк будут являтся имена столбцов из исходной, а названиями столбцов- заголовки строк?
(вроде транспорированой матрицы)

...если это вообще можно сделать...

Автор: alexIrish 24.5.2007, 23:46
Не совсем понятно.
А где вы видели заголовки строк в таблицах?

Автор: bopoha 24.5.2007, 23:50
Насчет заголовков строк из заголовков столбцов я сомневаюсь.
Но вот названия столбцов  из значения строк легко. При создании запроса см. перекресный запрос. Мастер поможет.

Автор: valedol 25.5.2007, 15:01
bopoha, в том то все и дело, надо выцепить именно заголовки столбцов и поработать с ними как с записью 

Автор: bopoha 27.5.2007, 11:42
Тогда пиши что нужно сделать. Может есть другие способы.

Автор: valedol 27.5.2007, 12:25
есть таблица, в которой хранятся данные о составе некоторых продуктов, примерно такой структуры: 
продукт;компонент1;компонент2;....;компонент19

у продуктов разный состав, есть как часто повторяющиеся компоненты, так и уникальные (только для ондного продукта) 
нужно в форме для каждого продукта выводить список его компонентов, т.е. названия тех полей значения записи, в которых не 0
т.е. 
продукт   |k1|k2|k3|k4|k5|k6
продукт1 |0  |12|21|0 |0  |5

нужно будет вывести только: компонент2, компонет3, компонент6

Автор: bopoha 27.5.2007, 12:47
Это результат плохо спроектированной базы данных. Для простоты я рекомендую избавиться от колонок компонент1 и т.д. Что будет если появится продукт из 20и компонентов? Изменять структуру бд?

таблица продуктов:
код_продукта | продкут

таблица компонентов
код_компонента | номер_компонента (если необходим) | завание_компонента

Плюс будет экономия места.

Если же не хочеться менять структуру БД, то решается программной обработкой каждой записи.
Например:
- скрывать лишние поля на форме
- обрабатывать функцией весь список компонентов и формировать строку из заполненных компонентов.

Автор: valedol 27.5.2007, 16:00
всё, сообразил, спасибо! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)