Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение перекрёстных запросов 
:(
    Опции темы
BearEvg
Дата 9.10.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.6.2008

Репутация: нет
Всего: нет



Есть таблица "Продажи":
Код_покупателя (ключевое типа Счётчик);
Название покупателя (текстовое);
Область_покупателя (поле подстановки - связано с таблицей, где перечислены названия областей);
Дата_операции (дата);
Вид_товара (поле подстановки - связано с таблицей, где перечислены все виды товаров);
Сумма_продажи (числовой)

Нужно построить перекрёстный запрос, который будет выводить таблицу, где строками идут названия областей, а столбцами - названия товаров, а на пересечении строк и столбцов - количество покупателей данного товара из данной области, а затем - суммы продаж этого товара.

Примерно вот так:

               Товар1    Товар2    Товар1   Товар2
Область  (кол-во)  (кол-во)   (сумма)  (сумма)

Можно ли это сделать одним запросом (или объединить несколько перекрёстных запросов)?
PM MAIL   Вверх
bopoha
Дата 9.10.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Можно и в одном перекресном запросе. Тогда нужно формировать уникальные имена колонок - Товар1_кол_во и т.п. При этом я думаю, что такой запрос не очень удобен, т.к. наименаний товаров может быть больше 4-х. И в запросе это просматривать не удобно.

Хорошо бы подошел бы экспорт в Excel или отчет с группировкой по области.
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 9.10.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Мне непонятен смысл получения этих данных в одном перекрестном запросе. Можно получить их в двух перекрестных, а потом связать их во внешнем запросе между собой по полю области. Но дальше-то ты чего будешь делать? ведь наименования столбцов не заданы жестко, посему далее испорльзовать такое объединение представляется затруднительным. А вывалить данные на форму или в отчет можно и из двух запросов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
BearEvg
Дата 9.10.2008, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.6.2008

Репутация: нет
Всего: нет



Тут вот какое дело. Я хочу дать возможность пользователю частично конструировать отчёт самому.
Примерно так:
Определить строки для группировки
Определить поля, из которых будут формироваться столбцы
Определить операции в столбцах (count, sum и т.п.)
И получившийся результат выдать в форме в виде таблицы. В этом случае пользователю может понадобиться группировка более чем по одному виду столбцов. Получившуюся таблицу хочу дать возможность бросать в Excel, для дальнейшей обработки.
PM MAIL   Вверх
bopoha
Дата 9.10.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Я бы сразу бы бросал бы этот отчет в Excel и только. Тут только программно эти данные и можно будет подготовить. Не стоит переносить максимум работы на запросы.
PM MAIL WWW ICQ Skype GTalk   Вверх
BearEvg
Дата 9.10.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.6.2008

Репутация: нет
Всего: нет



Я сейчас пробую такой путь:
Создаю временную таблицу, где начальные значения строк заполняю значениями группировки (области, например, или что пользователь выбрал)
Потом добавляю в эту таблицу новые пустые столбцы из тех, которые выбрал пользователь (например - товары)
Создаю рекордсет по первому перекрёстному запросу и его данные переношу в таблицу
Потом точно также добавляю данные второго запроса и т.п.
Готовую таблицу вывожу в форме с правом доступа "Только чтение"
И предлагаю возможность экспортировать в Excel, где пользователь может с ней разбираться по своему усмотрению.
После закрытия отчётной формы таблицу удаляю.

Это сообщение отредактировал(а) BearEvg - 9.10.2008, 19:11
PM MAIL   Вверх
bopoha
Дата 10.10.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Я бы формировал бы запросы и из них данные сразу же переносил в Excel. А там пускай пользователь сам думает, оно ему надо или нет.
PM MAIL WWW ICQ Skype GTalk   Вверх
FINANSIST
Дата 13.10.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 1
Всего: 23



Цитата(BearEvg @  9.10.2008,  19:10 Найти цитируемый пост)
Я сейчас пробую такой путь:
Создаю временную таблицу, где начальные значения строк заполняю значениями группировки (области, например, или что пользователь выбрал)
Потом добавляю в эту таблицу новые пустые столбцы из тех, которые выбрал пользователь (например - товары)
Создаю рекордсет по первому перекрёстному запросу и его данные переношу в таблицу
Потом точно также добавляю данные второго запроса и т.п.
Готовую таблицу вывожу в форме с правом доступа "Только чтение"
И предлагаю возможность экспортировать в Excel, где пользователь может с ней разбираться по своему усмотрению.
После закрытия отчётной формы таблицу удаляю.

Можно узнать, к чему весь этот геморой??? smile 
Что функционал сводных таблиц не катит?  smile  (они ж в том числе и для таких задач предназначены!)
А если уж в Excel  грузить из базы, так можно ещё и OLAP - кубов налепить, вообще сказка! smile 

Это сообщение отредактировал(а) FINANSIST - 13.10.2008, 12:33

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  ___________Microsoft_Office_Access.rar 23,43 Kb


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
BearEvg
Дата 15.10.2008, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.6.2008

Репутация: нет
Всего: нет



Проблема в том, что я не могу заранее прогнозировать, какие именно элементы и в каком количестве, и с каими группировками выберет пользователь. Вот и приходиться изобретать велосипед.
PM MAIL   Вверх
FINANSIST
Дата 16.10.2008, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 1
Всего: 23



Я (как пользователь) открыл свой же запрос, и (как пользователь) выбрал из списка именно те аналитики, и расположил их в тех срезах, которые необходимы именно в данный момент мне (как пользователю). Велосипед уже давно изобретён, а если юзер тупой - то надо учить его пользоваться мышкой smile 
( для особо тупых можно формировать срезы програмно, опять таки, ИМХО  - для данного случая этот вариант намного оптимальнее, чем тренировки с перекрёстными запросами)


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.