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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 16:10   #1
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
Вопрос Выборка данных для отчета с группировкой

Существует отчет с группировкой вида:
Код:
Наименование 1
дата             количество     ФИО
10.01.2011       1              Петров И.С.
12.01.2011       1              Сидоров Е.М.
                 ------------
                 2

Наименование 2
дата             количество     ФИО
10.01.2011       2              Петров И.С.
12.01.2011       3              Сидоров Е.М.
                 ------------
                 5
и т.д.
Поле под чертой вычисляется Итогом - count(*) не в запросе.
В запросе для отчета просто делается запрос из таблиц, сортировка по дате начиная за 30 дней до Сегодня().
Вот теперь вопрос - как можно сделать отчет чтобы вывести итоговые Наименования с Count(*)>=3.
Т.е. в данном примере выведено должно было бы быть только:
Код:
Наименование 2
дата             количество     ФИО
10.01.2011       2              Петров И.С.
12.01.2011       3              Сидоров Е.М.
                 ------------
                 5
smoky вне форума Ответить с цитированием
Старый 11.04.2011, 16:31   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не уверен, что понял Вас правильно.
но, можно примерно так:
Код:
SELECT * FROM TABLE1 WHERE 
  ID_Наименования in (select ID_Наименования 
                FROM TABLE1 group by ID_Наименования
                HAVING COUNT(*)>=3)
and  ... <остальные условия как в WHERE в вашем старом запросе> 
order by <как в старом запросе>
или так:

Код:
SELECT * FROM TABLE1 WHERE 
  ID_Наименования in (select AA.ID_Наименования from (select count(*) as cnt1, ID_Наименования
                FROM TABLE1 group by ID_Наименования) AA 
                GROUP BY AA.ID_Наименования
                HAVING SUM(AA.CNT1)>=3)
and  ... <остальные условия как в WHERE в вашем старом запросе> 
order by <как в старом запросе>
Внимание! первый и второй запросы - это НЕ ОДНО И ТО ЖЕ!
Это абсолютно разные по логике запросы, просто посмотрите, может быть, какой-то из них Вам подойдёт...

Последний раз редактировалось Serge_Bliznykov; 11.04.2011 в 16:34.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2011, 22:13   #3
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
По умолчанию

с небольшими переделками подошел первый вариант... спасибо за наводочку
smoky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка данных из таблицы и составление отчета! WildKosha Microsoft Office Excel 20 25.02.2013 16:11
Выборка данных для переноса на другой лист. Kot9ra Microsoft Office Excel 1 14.10.2010 22:05
Выборка из 2х таблиц с последующей группировкой Alkatras БД в Delphi 1 05.08.2010 07:33
Источник данных для отчета Swatch Microsoft Office Access 1 15.02.2010 20:02
выборка для отчета hinku БД в Delphi 10 03.09.2009 16:19