Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Прочие БД - [решено] MS Access: Сложный перевод строк таблицы в столбики

Ответить
Настройки темы
Прочие БД - [решено] MS Access: Сложный перевод строк таблицы в столбики

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток, посетители форума !

Для начала общая информация ... У нас компания где ведется учет моряков и пройденных ими курсов(курсы у нас же и проводятся), они получают сертификат, а мы фиксируем это в базу, таким образом - ФИО моряка, еще пару маловажных полей с общими данными и дальше столбики связанные с пройденными им курсами, Номер сертификата, столбик Название курса, дата начала курса, дата окончания, кол-во дней курса, последнее судно на момент прохождения того или иного курса, последнее звание, последний офис. Все это сделано в виде "вертикальной"таблицы, упрощенный вариант представлен ниже, т.е. в реальной таблице примерно 12 столбиков и несколько тысяч строк, при этом ФИО моряка может повторятся в зависимости от пройденных им курсов, исходя из таблицы-примера, Иванов прошел 3 курса и соответственно за ним 3 строки в базе (всего курсов в реальной базе порядка 29-30).

Код: Выделить весь код
Name	CertN	LastVessel	CourseName
Ivanov	od001	Vessel1	         Course1
Ivanov	od001	Vessel2	         Course2
Ivanov	od002	Vessel2	         Course3
Petrov	od002	Vessel3	         Course1
Petrov	od003	Vessel3	         Course2
Petrov	od001	Vessel4	         Course3
Sidorov	od002	Vessel5	         Course2
Sidorov	od001	Vessel5	         Course4
Я только в общих чертах работал в Access, по-этому следующая задача для меня представляется довольно сложной, хотя немного поработал с несложными запросами и имею некоторое представление, а нужно сделать следующее... перевести данную таблицу в такой вид:

Код: Выделить весь код
Name	Course1	LastVesselCourse1	Course2	LastVesselCourse2	Course3	LastVesselCourse3	Course4	LastVesselCourse4
Ivanov	od001	Vessel1	                 od001	Vessel2	                 od002	Vessel2		
Petrov	od002	Vessel3	                 od003	Vessel3	                 od001	Vessel4		
Sidorov			                 od002	Vessel5			                                  od001	Vessel5
Т.е. необходимо перевести таблицу грубо говоря к горизонтальному виду в которой у отдельно взятого моряка будет только 1 строчка в которой будут перечисляться все его курсы, а столбиками станут названия курсов и что самое сложное, в качестве информации в столбике курса будет отображаться номер сертификата при этом у каждого курса будет столбик с информацией по последнему судну, последнему офису, последнему званию, в данном примере я только судно показал для простоты. Так на вскидку должно таким образом получится более 100 столбиков в реальной таблице (29 курсов плюс 3-4 столбика к каждому курсу по данным о последнем судне и т.д. плюс общая информация, неск. столбиков). При этом особенность, номера сертификатов могут повторятся, так как это не абсолютные значения, номера сертификатов присваиваются как-то в зависимости от группы занимающихся.

В общем 2 вопроса:
1. Реально ли такое сделать в принципе ?
2. Если да, то могу ли я рассчитывать на помощь посетителей форума?

Отправлено: 14:24, 22-02-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


AlexK_UA, посмотрите здесь: Make summary data easier to read by using a crosstab query - Access - Office.com и здесь: TRANSFORM Statement (Microsoft Access SQL) [Access 2007 Developer Reference].
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:00, 22-02-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Спасибо большое, очень помогло, увы из-за относительно большой величины таблицы процесс перевода в нужный вид занимает не мало времени, но по крайней мере решение найдено

Отправлено: 11:01, 28-02-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


AlexK_UA, Вы посмотрите — может быть, Вас устроит и обычный отчёт вида строка-подтаблица-подтаблица, наподобие:
Код: Выделить весь код
Name	CertN	LastVessel	CourseName
Ivanov	od001
			Vessel1
				Course1
			Vessel2
				Course2
				Course3
…
?

Отправлено: 11:43, 28-02-2012 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Нет, увы такое не очень подходит, просто сложность в том, что там надо делать довольно большое кол-во полей из значений и надо чтобы в одной строке был перечень всей информации по одному человеку. К сожалению перекрестный запрос не даёт возможность сделать всю большую таблицу одним махом, я решил просто делать Имя и плюс какое-то поле, потом получаю таблицу, экспортирую её допустим в эксель, затем беру другое поле с именем, опять формирую нужные мне поля при помощи ввода доп поля в исходной таблице с названиями будущих полей в новой таблице и получаю след небольшой перекрестный запрос, его так же экспортирую добавляю к той таблице, так сказать склеиваю и потом в итоге получится общая картинка широченная таблица на 120 где-то полей. В принципе меня это устраивает, главное я знаю что в итоге я сделаю это преобразование таблицы, другое дело, что может быть есть вариант с небольшим упрощением данного процесса, так как строк в таблице тысяча и приходится в этих доп полях вводить тысячу раз вписывать названия будущих полей, чтобы потом при преобразовании правильно отображало поля для нужных людей. Но опять таки результат хоть какой-то есть, если нету способа немного упростить жизнь, не страшно

Отправлено: 14:29, 28-02-2012 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


AlexK_UA, спасибо, ясно.

Отправлено: 15:55, 28-02-2012 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Прочие БД - [решено] MS Access: Сложный перевод строк таблицы в столбики

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск слова в тексте, удаление строки, удаление 8 строк выше и 3 строк ниже Alk-13 Скриптовые языки администрирования Windows 0 10-02-2012 18:06
Сложный выбор. clin Флейм 20 24-01-2011 21:16
MSFT SQL Server - создание таблицы точнее проблемма с созданием таблицы GAROD Программирование и базы данных 4 02-12-2010 00:58
Прочие БД - Текущая запись при редактировании таблицы Access hasherfrog Программирование и базы данных 1 01-02-2010 01:40
перевод таблицы clop1000 Программное обеспечение Windows 2 23-10-2007 23:54




 
Переход