Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 245
1

Запрос count в диапазоне между датами

18.04.2017, 18:46. Просмотров 871. Ответов 6
Метки нет (Все метки)

Создаю запрос с подсчетом строк по значению. Необходимо чтобы выборка значений происходила в определенном диапазоне дат. Запрос выглядит следующим образом:
SQL
1
2
3
4
SELECT BASE.Район, COUNT(IIf([STATUS].[Возрастная группа]="дети" AND [STATUS].[Метод]="ОБРАЩЕНИЕ",11)) AS [дети обращение], COUNT(IIf([STATUS].[Возрастная группа]="подростки" AND [STATUS].[Метод ]="ОБРАЩЕНИЕ",11)) AS [подростки обращение], COUNT(IIf([STATUS].[Возрастная группа]="взрослые" AND [STATUS].[Метод ]="ОБРАЩЕНИЕ",11)) AS [Взрослые обращение], STATUS.[Дата]
FROM BASE LEFT JOIN STATUS ON BASE.ID = STATUS.SID
GROUP BY BASE.Район, STATUS.[Метод выявления], STATUS.[Дата]
HAVING (((STATUS.[Метод ])="ОБРАЩЕНИЕ") AND ((STATUS.[Дата]) BETWEEN Nz([Forms]![MAIN]![BASFORM]![Поле2],#1/1/1000#) AND Nz([Forms]![MAIN]![BASFORM]![Поле4],#1/1/3000#)));
Соответственно при формировании запроса строки содержат значение count для определенной даты.
Каким образом изменить запрос чтобы подсчет для дат не выводился, а даты находящиеся за пределами диапазона в отчет просто не попадали?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2017, 18:46
Ответы с готовыми решениями:

Запрос COUNT с условием
Помогите пожалуйста составить запрос: Часто останавливающиеся лифты –...

Запрос COUNT с условием
Подскажите пожалуста как сделать правильно Есть таблица "Table2" мне надо...

SQL запрос, Count из нескольких таблиц
Здравствуйте, помогите написать один запрос для следующих таблиц: Пусть есть...

Запрос с датами
Здравствуйте. Напишите, пожалуйста, как написать запрос: выдать...

Запрос с датами
Доброго времени суток. Собственно в запросе нужно вывести количество больных...

6
mobile
Эксперт MS Access
22930 / 13003 / 2692
Регистрация: 28.04.2012
Сообщений: 14,234
18.04.2017, 19:05 2
Лучший ответ Сообщение было отмечено urman как решение

Решение

Цитата Сообщение от urman Посмотреть сообщение
чтобы подсчет для дат не выводился
Убрать поле даты из селекта и из From

Цитата Сообщение от urman Посмотреть сообщение
даты находящиеся за пределами диапазона в отчет просто не попадали?
Диапазон в запросе написать в предложении Where (вместо Having)
1
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 245
18.04.2017, 19:30  [ТС] 3
Цитата Сообщение от mobile Посмотреть сообщение
Сообщение от urman
чтобы подсчет для дат не выводился
Убрать поле даты из селекта и из From
Сообщение от urman
даты находящиеся за пределами диапазона в отчет просто не попадали?
Диапазон в запросе написать в предложении Where (вместо Having)
SQL
1
2
3
4
SELECT BASE.Район, COUNT(IIf([STATUS].[Возрастная группа]="дети" AND [STATUS].[Метод ]="ОБРАЩЕНИЕ",11)) AS [дети обращение], COUNT(IIf([STATUS].[Возрастная группа]="подростки" AND [STATUS].[Метод ]="ОБРАЩЕНИЕ",11)) AS [подростки обращение], COUNT(IIf([STATUS].[Возрастная группа]="взрослые" AND [STATUS].[Метод ]="ОБРАЩЕНИЕ",11)) AS [Взрослые обращение], STATUS.[Метод ]
FROM BASE LEFT JOIN STATUS ON BASE.ID = STATUS.SID
WHERE (((STATUS.[Метод ])="ОБРАЩЕНИЕ") AND ((STATUS.[Дата ]) BETWEEN Nz([Forms]![MAIN]![BASFORM]![Поле2],#1/1/1000#) AND Nz([Forms]![MAIN]![BASFORM]![Поле4],#1/1/3000#)))
GROUP BY BASE.Район, STATUS.[Метод ];
Так что то не работает.
0
mobile
Эксперт MS Access
22930 / 13003 / 2692
Регистрация: 28.04.2012
Сообщений: 14,234
18.04.2017, 19:37 4
Цитата Сообщение от urman Посмотреть сообщение
не работает
Возможно из-за того, что поле даты написано с пробелом: STATUS.[Дата ] во Where
0
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 245
18.04.2017, 19:57  [ТС] 5
Цитата Сообщение от mobile Посмотреть сообщение
Возможно из-за того, что поле даты написано с пробелом: STATUS.[Дата ] во Where
Мобайл я сделал вот так:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT BASE.Район,
 COUNT(IIf([STATUS].[Возрастная группа]="дети" AND [STATUS].[Метод]="ОБРАЩЕНИЕ",11)) AS [дети обращение],
 COUNT(IIf([STATUS].[Возрастная группа]="подростки" AND [STATUS].[Метод]="ОБРАЩЕНИЕ",11)) AS [подростки обращение],
 COUNT(IIf([STATUS].[Возрастная группа]="взрослые" AND [STATUS].[Метод]="ОБРАЩЕНИЕ",11)) AS [Взрослые обращение],
 STATUS.[Метод]
 
FROM BASE
 LEFT JOIN STATUS ON BASE.ID = STATUS.SID
 
WHERE (((STATUS.[Дата]) BETWEEN Nz([Forms]![MAIN]![BASFORM]![Поле2],#1/1/1000#)
 AND Nz([Forms]![MAIN]![BASFORM]![Поле4],#1/1/3000#))
 AND ((STATUS.[Метод])="ОБРАЩЕНИЕ"))
 
GROUP BY BASE.Район, STATUS.[Метод];
теперь не учитывает значение полей формы, просто выдает выдает все значения Count

Добавлено через 3 минуты
Цитата Сообщение от mobile Посмотреть сообщение
Возможно из-за того, что поле даты написано с пробелом: STATUS.[Дата ] во Where
извиняюсь! да все заработало вроде ща проверю... Спасибо!
0
Capi
1712 / 906 / 177
Регистрация: 12.06.2016
Сообщений: 1,986
18.04.2017, 21:47 6
urman,

Зачем здесь (и в других подобных местах) проверка условия [STATUS].[Метод]="ОБРАЩЕНИЕ" ?
SQL
1
 .....IIf([STATUS].[Возрастная группа]="дети" AND [STATUS].[Метод]="ОБРАЩЕНИЕ"....
Ведь это условие уже проверилось в WHERE, отобраны только те записи, которые ему удовлетворяют.
Зачем снова проверять?
0
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 245
19.04.2017, 04:20  [ТС] 7
Цитата Сообщение от Capi Посмотреть сообщение
Ведь это условие уже проверилось в WHERE, отобраны только те записи, которые ему удовлетворяют.
Зачем снова проверять?
в WHERE аксесс почему то дописывает условие автоматом, да почему то запрос в таком виде работает раз через раз или вообще не работает. Почему ни как понять не могу.
0
19.04.2017, 04:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2017, 04:20

Запрос, связанный с датами
Нужно для указанного интервала времени выдать список членов Думы, которые...

Запрос SQL с датами
Помогите, пожалуйста 1. Выбрать номера читательских билетов тех читателей,...

Запрос с датами:выбор периода
Здравствуйте, Есть запрос на выборку из таблицы за определенный период. Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru