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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос с обобщением по 2-м условиям 
:(
    Опции темы
Karam_S
Дата 29.7.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

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



Не могу сообразить, можно ли создать запрос, в котором суммируются данные из таблицы по двум пересекающимся условиям.
Имеется таблица с полями:
1. Курс
2. Дата
3. Лекция
4. Семинар...
5. План
6. Факт

В поле "План" указывается "п" (т.е. по плану) или оно остаётся незаполненным, в поле "Факт" указывается "ф" или оно тоже остаётся незаполненным.
Это делается для того, чтобы отразить пользователю: 
а) планом занятие было предусмотрено, и фактически оно было проведено;
б) планом занятие было предусмотрено, но оно не было фактически проведено;
в) планом занятие было не предусмотрено, но оно всё-таки было проведено.

В запросе необходимо вывести: 
1) одной строкой для определённого курса сколько всего было занятий запланировано; 
2) второй строкой для определённого курса сколько всего было занятий фактически проведено.

Если делать запросы по отдельности для выше указанных пунктов (1) или (2) с одним условием (например, для поля "План" - "п") проблем не возникает. Всё нормально.
Но мне нужно это свести в один отчёт и данные по запросу (1), и данные по запросу (2). Чтобы строки были рядом: друг под другом. А отчёт создаётся только на одном запросе.
Создать один запрос, чтобы в нём была отражена одной строкой сумма всех лекций со значением поля "План" - "п" и отдельной строкой сумма лекций со значением поля "Факт" - "ф", не получается.
Если использовать запрос с группировкой, то он группирует записи на три комбинации:
а) п ф
б) п -
в) - ф;
Это не то, что нужно.

Попытка создать запрос, на основе данных из двух отдельных запросов (1) и (2) к положительному результату не приводит.
Что делать? Уже читал и про рекурсивный запрос, и про перекрёстный, и про having, и думал про перестройку соотношения данных в таблице. Не соображу.
Или создавать составной отчёт?

Вариант базы прилагаю. 
В ней создано три запроса:
1. "2010_08-10" - в нём данные без фильтрации.
2. "2010_08-10 план" - в нём записи отфильтрованы по полю "План" со значением "п" - то, что и нужно.
3. "2010_08-10 факт" - в нём записи отфильтрованы по полю "Факт" со значением "ф" - то, что и нужно.

Это сообщение отредактировал(а) Karam_S - 29.7.2010, 18:20

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  Erfassung.zip 217,54 Kb
PM MAIL ICQ   Вверх
Akina
Дата 3.8.2010, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Karam_S @  29.7.2010,  19:05 Найти цитируемый пост)
В запросе необходимо вывести: 
1) одной строкой для определённого курса сколько всего было занятий запланировано; 
2) второй строкой для определённого курса сколько всего было занятий фактически проведено.

Код

Select *
From 
(
  Select Поле1, ... , ПолеХ, План
  From Таблица 
  Union 
  Select Поле1, ... , ПолеХ, Факт 
  From Таблица 
)
Order By Поле1, ... , ПолеХ, План



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

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


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

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



Спасибо за отклик!
Попробовал применить указанный выше код, но получилось не совсем то, что надо.
Запрос по нему выдал все записи без группировки (а значит и суммирования).
Попробовал добавить в sql-режиме строку GROUP BY ..., но Access ругается, говорит, что со звёздочкой в начале нельзя применять эту команду.
А опцию HAVING нельзя применять без группировки.

PM MAIL ICQ   Вверх
Akina
Дата 6.8.2010, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Читаем закреплённую тему.


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

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

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

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

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


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

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


 




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


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

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