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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2014, 18:31   #1
Pushkin1983
 
Регистрация: 19.09.2011
Сообщений: 6
По умолчанию ошибка при подсчете количества

Пытаюсь посчитать количество записей:

SELECT osnova.idstati, Iif(Count(*) is null, 0, Count(*))
FROM osnova
WHERE osnova.date_prot Between Forms!Dlia_otcheta!txtDateBegin And Forms!Dlia_otcheta!txtDateEnd And osnova.idstati=5;

Заканчивается всё ошибкой "Попытка выполнить запрос, который не включает указанное выражение 'idstati' как часть статистической функции или группы".
Если убираю osnova.idstati из select-а - начинает работать.
Только дальше у меня идут Union-ы, которые нужно отсортировать по idstati, но без idstati в select-e не сортируется,
Pushkin1983 вне форума Ответить с цитированием
Старый 06.06.2014, 19:09   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Стрелка

Цитата:
Заканчивается всё ошибкой "Попытка выполнить запрос, который не включает указанное выражение 'idstati' как часть статистической функции или группы"
Естественно. Если в запросе используются агрегатные и функции, то всё, что не является аргументов какой-либо из них, должно быть в предложении group by, а вовсе не select.
Streletz вне форума Ответить с цитированием
Старый 06.06.2014, 20:09   #3
Pushkin1983
 
Регистрация: 19.09.2011
Сообщений: 6
По умолчанию

Если делаю group by osnova.idstati, не выводит строки с нулевыми значениями, и не понятно что делать с сортировкой
Pushkin1983 вне форума Ответить с цитированием
Старый 07.06.2014, 08:15   #4
Pushkin1983
 
Регистрация: 19.09.2011
Сообщений: 6
По умолчанию

все получилось. сделал так:
Код:
SELECT  'as1', IIf(Count(*) Is Null,0,Count(*))
FROM osnova
WHERE osnova.date_prot Between Forms!Dlia_otcheta!txtDateBegin And Forms!Dlia_otcheta!txtDateEnd And osnova.idstati=5
;
Union
SELECT  'as2',  IIf(Count(*) Is Null,0,Count(*))
FROM osnova
WHERE osnova.date_prot Between Forms!Dlia_otcheta!txtDateBegin And Forms!Dlia_otcheta!txtDateEnd And osnova.idstati=6
Тогда и сортирует и нулевые значения выводит. Спасибо

Последний раз редактировалось Serge_Bliznykov; 07.06.2014 в 10:12.
Pushkin1983 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в подсчете Rik_Igle Помощь студентам 4 03.12.2011 21:58
Интегрирование(ошибка при подсчете) Erwin Общие вопросы C/C++ 1 03.05.2011 19:43
при подсчете хеш-суммы ошибка Integer Overflow. как обойти? Человек_Борща Общие вопросы Delphi 2 09.02.2011 11:20
исправить в задаче ощибку при подсчете суммы ряда пыхонин филипп Помощь студентам 1 05.01.2009 13:12