![]() |
MS Access: Сложный перевод строк таблицы в столбики
Доброго времени суток, посетители форума !
Для начала общая информация ... У нас компания где ведется учет моряков и пройденных ими курсов(курсы у нас же и проводятся), они получают сертификат, а мы фиксируем это в базу, таким образом - ФИО моряка, еще пару маловажных полей с общими данными и дальше столбики связанные с пройденными им курсами, Номер сертификата, столбик Название курса, дата начала курса, дата окончания, кол-во дней курса, последнее судно на момент прохождения того или иного курса, последнее звание, последний офис. Все это сделано в виде "вертикальной"таблицы, упрощенный вариант представлен ниже, т.е. в реальной таблице примерно 12 столбиков и несколько тысяч строк, при этом ФИО моряка может повторятся в зависимости от пройденных им курсов, исходя из таблицы-примера, Иванов прошел 3 курса и соответственно за ним 3 строки в базе (всего курсов в реальной базе порядка 29-30). Код:
Name CertN LastVessel CourseName Код:
Name Course1 LastVesselCourse1 Course2 LastVesselCourse2 Course3 LastVesselCourse3 Course4 LastVesselCourse4 В общем 2 вопроса: 1. Реально ли такое сделать в принципе ? 2. Если да, то могу ли я рассчитывать на помощь посетителей форума? :) |
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].
|
Iska, Спасибо большое, очень помогло, увы из-за относительно большой величины таблицы процесс перевода в нужный вид занимает не мало времени, но по крайней мере решение найдено :)
|
AlexK_UA, Вы посмотрите — может быть, Вас устроит и обычный отчёт вида строка-подтаблица-подтаблица, наподобие:
Код:
Name CertN LastVessel CourseName |
Iska, Нет, увы такое не очень подходит, просто сложность в том, что там надо делать довольно большое кол-во полей из значений и надо чтобы в одной строке был перечень всей информации по одному человеку. К сожалению перекрестный запрос не даёт возможность сделать всю большую таблицу одним махом, я решил просто делать Имя и плюс какое-то поле, потом получаю таблицу, экспортирую её допустим в эксель, затем беру другое поле с именем, опять формирую нужные мне поля при помощи ввода доп поля в исходной таблице с названиями будущих полей в новой таблице и получаю след небольшой перекрестный запрос, его так же экспортирую добавляю к той таблице, так сказать склеиваю и потом в итоге получится общая картинка широченная таблица на 120 где-то полей. В принципе меня это устраивает, главное я знаю что в итоге я сделаю это преобразование таблицы, другое дело, что может быть есть вариант с небольшим упрощением данного процесса, так как строк в таблице тысяча и приходится в этих доп полях вводить тысячу раз вписывать названия будущих полей, чтобы потом при преобразовании правильно отображало поля для нужных людей. Но опять таки результат хоть какой-то есть, если нету способа немного упростить жизнь, не страшно :)
|
AlexK_UA, спасибо, ясно.
|
Время: 17:54. |
Время: 17:54.
© OSzone.net 2001-