Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2014, 12:04   #1
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
Вопрос Замена полей строками

Доброго времени суток.
Имеется запрос на объединение, результат которого складывается из нескольких перекрестых запросов
пример результата:

Data | Param_s | A1 | A2 | A3 | A4 | A5
03.03.14 | Param1 | 10 | 0 | 20 | 25 | 30
03.03.14 | Param2 | 11 | 22 | 0 | 44 | 55
03.03.14 | Param3 | 0 | 11 | 12 | 13 | 14
03.03.14 | Param4 | 3 | 8 | 5 | 0 | 0

Задача: значения поля Param_s сделать заголовками полей, а заголовки полей (A1, A2, A3, A4, A5) сделать строками
пример желаемого результата:

Data | A_s | Param1 | Param2 | Param3 | Param4
03.03.14 | A1 | 10 | 11 | 0 | 3
03.03.14 | A2 | 0 | 22 | 11 | 8
03.03.14 | A3 | 20 | 0 | 12 | 5
03.03.14 | A4 | 25 | 44 | 13 | 0
03.03.14 | A5 | 30 | 55 | 14 | 0

Вопрос: можно ли сделать такую замену запросом или какими-то иными инструментами?
Нашел в интернете что такую замену можно сделать инструкцией TRANSFORM

Код:
TRANSFORM Param_s
SELECT [Запрос1].A1, [Запрос1].A2, [Запрос1].A3, [Запрос1].A4, [Запрос1].A5
FROM Запрос1
GROUP BY A_s
PIVOT Param_s In ([Param1], [Param2], [Param3],[Param4]);
но мне не удалось получить результат (не работает), не могу разобраться с синтаксисом, примеров не нашел
Если тема уже расматривалась дайте пожалуйста ссылку.
denis.ta-com вне форума Ответить с цитированием
Старый 04.03.2014, 14:38   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

если а1-а... не очень много(меньше 20)

запрос1
Код:
select data,param_s,"a1" as rekva,a1 from tab1
union all
select data,param_s,"a2",a2 from tab1
union all
select data,param_s,"a3",a3 from tab1
........
union all
select data,param_s,"a20",a20 from tab1
запрос 2 --обычный перекрестный на запрос 1
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 24.03.2014, 20:24   #3
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию Тема закрыта

shanemac51 большое спасибо за ответ, не воспользовался вашим советом из-за сложной логики приведения к форме которую я описывал выше. Решил другим способом: сохраняю запрос в таблицу (перезаписываю), а замену делаю обновлением таблицы с уже в нужной мне группировки. Тема закрыта.
denis.ta-com вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена текста полей ввода, в браузере Rost93 Свободное общение 4 03.04.2012 08:21
Замена стандартных процедур и функций для работы со строками Alexar Makken Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2010 21:59
При удалении записей значения полей с type:=Autoincrement (т.е+) в оставшихся полей не изменяются kenta БД в Delphi 2 29.10.2009 08:28
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL DorianLeroy Фриланс 8 18.02.2009 18:52