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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2011, 22:38   #21
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

Цитата:
Сообщение от ovt256 Посмотреть сообщение
В условии задачи (первое сообщение данной темы) требовалось определить число повторных вызовов внутри суток. "Предложенный запрос" это и делает. А "Мой запрос" считает количество вызовов по одному и тому же адресу в течение некоторого периода (в данном случае по всей базе). Трудно ожидать одинаковых результатов от столь разных запросов.

Что касается п.2, не понятно, что именно не так. Если Вы анализировали результат выполнения "Предложенного запроса", то какую именно неточность Вы обнаружили?
вот это сюрприз!А я то и не подумал
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 04.07.2011, 22:44   #22
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

а как мне поправить мой запрос?...что бы был как Ваш,но при этом фиксировал бы все случаи повторов на этот адрес за весь период?
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 04.07.2011, 22:51   #23
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Цитата:
Сообщение от dr03 Посмотреть сообщение
а как мне поправить мой запрос?...что бы был как Ваш,но при этом фиксировал бы все случаи повторов на этот адрес за весь период?
В моем запросе убрать поле Дата вызова из группировки и вообще из запроса:
Код:
SELECT вызов.фио_пациента, вызов.адрес_ГОРОД, вызов.адрес_УЛИЦА, вызов.адрес_ДОМ, вызов.адрес_КОРПУС, вызов.адрес_КВАРТИРА, Count(вызов.Код) AS [Count-Код]
FROM вызов
GROUP BY вызов.фио_пациента, вызов.адрес_ГОРОД, вызов.адрес_УЛИЦА, вызов.адрес_ДОМ, вызов.адрес_КОРПУС, вызов.адрес_КВАРТИРА
HAVING (((Count(вызов.Код))>1));
И еще до кучи убрать фио пациента, поскольку по одному и тому же адресу проживают фИношина, фЕношина и финоСина
Если руки золотые, то не важно, откуда они растут.

Последний раз редактировалось ovt256; 04.07.2011 в 22:59.
ovt256 вне форума Ответить с цитированием
Старый 04.07.2011, 23:19   #24
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
Хорошо

Цитата:
Сообщение от ovt256 Посмотреть сообщение
В моем запросе убрать поле Дата вызова из группировки и вообще из запроса:
Код:
SELECT вызов.фио_пациента, вызов.адрес_ГОРОД, вызов.адрес_УЛИЦА, вызов.адрес_ДОМ, вызов.адрес_КОРПУС, вызов.адрес_КВАРТИРА, Count(вызов.Код) AS [Count-Код]
FROM вызов
GROUP BY вызов.фио_пациента, вызов.адрес_ГОРОД, вызов.адрес_УЛИЦА, вызов.адрес_ДОМ, вызов.адрес_КОРПУС, вызов.адрес_КВАРТИРА
HAVING (((Count(вызов.Код))>1));
И еще до кучи убрать фио пациента, поскольку по одному и тому же адресу проживают фИношина, фЕношина и финоСина
всё точно как в аптеке!
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 21.01.2012, 16:11   #25
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

С прошедшими праздниками форумчане!
Возникли сложности с запросом "летальность ССС за месяц" в базе 40-9.
Не отрабатывает запрос"Between #0:03:59# And #23:59:59#".Необходимо заметить, что в другом запросе "Летальность при ССС" в поле "с 4 до 15 "всё работает! Прада строка в построителе в этом запросе небольшая:с 4 до 15: Sum(IIf([вызов]![точный_диагноз] Like "*смерт*" And [повод]![ОПИСАНИЕ] Not Like "*умер*" And [вызов]![время_задержки] Between #0:03:59# And #0:14:59#;1;0))".В другом случае "летальность ССС за месяц" с большим количеством условий в поле "задержка ССС вся" запрос уже не работает.
Вопрос1:Как правильно прописать в построителе? Возможно слишком длинный список условий для условия "Between #0:03:59# And #0:14:59#", или соединены не правильно.
Вопрос 2:Вероятно можно прописать условие [вызов]![время_задержки] Between #0:03:59# And #0:14:59# в запросе "задержка ССС вся" в строке "условия отбора", тогда как будет выглядеть такая запись?
Вложения
Тип файла: rar форма 40 - 9.rar (2.14 Мб, 7 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 23.01.2012, 14:55   #26
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

На лицо одна неточность. Поле "ССС всего" и поле "задержка ССС вся", если из выражения последнего убрать фильтр по задержке, должны давать одинаковые результаты. Но у Вас результаты разные. Причина в том, что фильтры по болячкам в этих полях отличаются, а должны совпадать.

Поскольку фильтры достаточно сложны из-за обилия параметров, я бы делал так: Запросом №1 я бы отфильтровал все записи, удовлетворяющие понятию ССС, а запросом №2, построенном на основании запроса №1, уже считал бы задержки. В этом случае сложный фильтр по болячкам использовался бы только в запросе №1, а остальные фильтры по времени задержки - в запросе №2
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 25.01.2012, 17:35   #27
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
Хорошо

Код HTML:
На лицо одна неточность. Поле "ССС всего" и поле "задержка ССС вся", если из выражения последнего убрать фильтр по задержке, должны давать одинаковые результаты. Но у Вас результаты разные. Причина в том, что фильтры по болячкам в этих полях отличаются, а должны совпадать.
да это так!Честно говоря не ожидал, что так подробно будет рассмотрен фильтр(приятно удивлён такому детальному подходу).Всё дело в том, что фильтр по времени уже не вмещался в строку, поэтому пришлось пренебречь некоторыми на мой взгляд не значительными данными(3-4 случая не страшно)
Очень важно было понять:возможно было ли сделать в этом же запросе? Ответ с вашей стороны ovt256 весьма исчерпывающий:
Код HTML:
 я бы делал так: Запросом №1 я бы отфильтровал все записи, удовлетворяющие понятию ССС, а запросом №2, построенном на основании запроса №1, уже считал бы задержки.
В принципе сделал БД "запрос ССС"- запрос"время приёма и задержки"-через запрос-"ССС за месяц".Вроде всё считает...но потеря данных всё равно идёт.Так например: запрос"время приёма и задержки" сумма полей от "0-8" и до "18-0"=338(это интересно но не страшно) , а так же сумма с "до 4" до "свыше 60"-результат 312(вот это потеря!);при том что записей 337-где то теряется не пойму?
А вообще конечно огромная благодарность за столь детальный разбор моей проблемы!
Вложения
Тип файла: rar запрос ССС.rar (1.60 Мб, 8 просмотров)
OVT 256 МЕГАРЕСПЕКТ!

Последний раз редактировалось dr03; 26.01.2012 в 00:48.
dr03 вне форума Ответить с цитированием
Старый 25.01.2012, 18:23   #28
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Разбираемся дальше. Запрос "ССС за месяц" не следует делать с итогами, ведь итоги ушли в следующий запрос. Если допустить, что в БД есть записи с одинаковыми значениями полей, то запрос с группировкой объединит их в одну запись, чего нам не надо. Конечно, в Вашем случае такого не происходит, но тогда зачем напрягать процессор выполнением группировки?
Теперь второй запрос "время приема и задержки". Тут тоже есть небольшой косячек. Дело в том, что оператор BETWEEN включает границы диапазона. Рассмотрим условия:
Код:
0 до 8: Sum(IIf([ССС за месяц]![время_приёма_вызова] Between #00:00:00# And #08:00:00#;1;0))
с 8 до 14: Sum(IIf([ССС за месяц]![время_приёма_вызова] Between #08:00:00# And #14:00:00#;1;0))
с 14 до 18: Sum(IIf([ССС за месяц]![время_приёма_вызова] Between #14:00:00# And #18:00:00#;1;0))
с 18 до 0: Sum(IIf([ССС за месяц]![время_приёма_вызова] Between #18:00:00# And #23:59:00#;1;0))
Что происходит при проверке данных условий? Если время задержки равно либо 8, либо 14, либо 18, то данная запись попадет в оба соседних диапазона. Здесь надо либо на секунду разнести на 1 секунду, либо заменить BETWEEN на пару IIF
Начните с этого, а потом, если циферки не будут биться, выкладывайте очередной вариант базы - будем думать дальше.
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 26.01.2012, 02:32   #29
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

первая часть отработала на 100% -337 против 337
вторая часть- не точно: 331 против 337!
Вложения
Тип файла: rar запрос ССС.rar (1.58 Мб, 9 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 26.01.2012, 10:38   #30
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию отчеты

предпочитаю вариант с предварительным формированием рабочих запроса или таблицы
Вложения
Тип файла: zip запрос ССС.zip (1.77 Мб, 8 просмотров)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно придумать запросы для бд) Alexeytur Помощь студентам 2 18.12.2010 14:07
Построение отчёта masterenergy Microsoft Office Excel 1 10.11.2010 16:20
Построитель отчёта MAcK Общие вопросы Delphi 4 20.04.2010 10:03
Если exe, допустим, расчитан на то, что бы отправлять запросы на сайт, то надо ли копировать ЕХЕ для за.. TwiX Общие вопросы Delphi 3 13.12.2009 11:44
Запросы для создания отчета John_chek БД в Delphi 15 19.02.2007 08:55