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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 00:27   #1
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию запросы для отчёта

Доброго всем здоровья форумчане!!!Возникли сложности при подготовке запроса по промежутку времени(очевидно не правильно использую оператора between ).
1. В БД 21 пытался посчитать сколько значений получится с 0 часов до 8.
Прописал: "с 0 до 8: Sum(IIf([вызов]![время_приёма_вызова] Between 0 And 8;1;0))"
неработает
2.В той же БД необходимо посчитать повторы за сутки на адрес.Ранее пытался это сделать двумя перекрёстными запросами...но итог таков,что повторы считает по адресу, №дома и №квартиры(для квартирных домов подходит, но есть же и частые дома, где квартир нет),необходимо прописать условие типа "считать ,если нет квартиры"
поделитесь мыслями пожалуйста!!!
Вложения
Тип файла: rar База данных21 - копия (2).rar (324.6 Кб, 14 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 23.06.2011, 09:24   #2
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

По первому вопросу: надо вот так
Код:
с 0 до 8: Sum(IIf([вызов]![время_приёма_вызова] Between #00:00:00# And #08:00:00#;1;0))
На второй вопрос ответит следующий запрос:
Код:
SELECT вызов.дата, вызов.фио_пациента, вызов.адрес_ГОРОД, вызов.адрес_УЛИЦА, вызов.адрес_ДОМ, вызов.адрес_КОРПУС, вызов.адрес_КВАРТИРА, Count(вызов.Код) AS [Count-Код]
FROM вызов
GROUP BY вызов.дата, вызов.фио_пациента, вызов.адрес_ГОРОД, вызов.адрес_УЛИЦА, вызов.адрес_ДОМ, вызов.адрес_КОРПУС, вызов.адрес_КВАРТИРА
HAVING (((Count(вызов.Код))>1));
Если в одной квартире живут два болезненных организма, то второй вызов за сутки в эту квартиру, но к другому организму, повторным вызовом не считается.
Если руки золотые, то не важно, откуда они растут.

Последний раз редактировалось ovt256; 23.06.2011 в 09:32.
ovt256 вне форума Ответить с цитированием
Старый 23.06.2011, 20:27   #3
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

[QUOTE=ovt256;831052]По первому вопросу: надо вот так
Код:
с 0 до 8: Sum(IIf([вызов]![время_приёма_вызова] Between #00:00:00# And #08:00:00#;1;0))
и я уже не далёк был от истины
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 23.06.2011, 20:36   #4
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

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

в этой же БД есть одна для меня неразрешимая задачка:время задержки!
1.В форме и отчёте,путём вычисления в поле это время стоит...а вот в таблице не отображается.И как мне посчитать,к примеру количество значений с задержкой более 15 мин, если эта колонка пустая? Пытался сделать запрос на поле формы...нет даёт результата,вполне возможно неправильно прописал.
2.Попробую ещё раз продублировать(да простят меня модераторы за дублирование)
Есть небольшая заморочка: в одном поле по умолчанию вставляется время.Во второе поле необходимо" время по умолчанию" +2 минуты. Путём подстановок нашёл значение +0,001.Вот только при подробном рассмотрении даты с этим временем-откат на 100 лет.Может кто знает как прибавить?
Вложения
Тип файла: rar База данных21 - копия (2).rar (327.9 Кб, 10 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 24.06.2011, 05:47   #6
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Цитата:
Сообщение от dr03 Посмотреть сообщение
а если один из организмов заразил другого особо опасной инфекцией и немного ранее упылил в неизвестном направлении....а на этом адресе живут ещё пара десятков работяг?Или "грамотный диспетчер" запишет фамилию через другую букву?Тогда на этот адрес не будет обращено внимание!
Если я правильно понял запрос -то в этом случае просто убрать"вызов.фио_пациента," так?
Совершенно верно. Я, видимо, слишком идеализирую работу скорой помощи
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 24.06.2011, 08:18   #7
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Цитата:
Сообщение от dr03 Посмотреть сообщение
в этой же БД есть одна для меня неразрешимая задачка:время задержки!
1.В форме и отчёте,путём вычисления в поле это время стоит...а вот в таблице не отображается.И как мне посчитать,к примеру количество значений с задержкой более 15 мин, если эта колонка пустая? Пытался сделать запрос на поле формы...нет даёт результата,вполне возможно неправильно прописал.
Если честно, то я в форме Вызов поля время_задержки не обнаружил. Для начала скажите, задержку чего и относительно чего Вы хотите получить (как вычислять).
Цитата:
Сообщение от dr03 Посмотреть сообщение
2.Попробую ещё раз продублировать(да простят меня модераторы за дублирование)
Есть небольшая заморочка: в одном поле по умолчанию вставляется время.Во второе поле необходимо" время по умолчанию" +2 минуты. Путём подстановок нашёл значение +0,001.Вот только при подробном рассмотрении даты с этим временем-откат на 100 лет.Может кто знает как прибавить?
Есть такая функция DateAdd(interval, number, date). Найдите ее в построителе выражений и посмотрите описание. В Вашем случае значение поля по умолчанию будет выглядеть так:
Код:
DateAdd("n",2,Now())
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 24.06.2011, 15:17   #8
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

Цитата:
Сообщение от ovt256 Посмотреть сообщение
Если честно, то я в форме Вызов поля время_задержки не обнаружил. Для начала скажите, задержку чего и относительно чего Вы хотите получить (как вычислять).

Есть такая функция DateAdd(interval, number, date). Найдите ее в построителе выражений и посмотрите описание. В Вашем случае значение поля по умолчанию будет выглядеть так:
Код:
DateAdd("n",2,Now())
всё равно не работает.Наверно я не так понимаю само действие и Вас ввожу в заблуждение.
Попробую объяснить по-другому:три отсечки времени.
1.время приёма вызова(проставляется автоматически при переходе на новую страницу)
2.время передачи вызова(это время должно отличаться от времени поступления вызова максимум на 2 мин.)сейчас запускается с кнопки(вашей кнопки)
3.время выезда(это время должно отличаться от времени передачи так же максимум на 2 мин.)-так же запускается с кнопки
хотелось бы что при нажатии кнопки "время передачи вызова" в поле "время выезда" было значение "время выезда"+2 мин.
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 24.06.2011, 15:23   #9
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

[QUOTE=ovt256;831763]Если честно, то я в форме Вызов поля время_задержки не обнаружил. Для начала скажите, задержку чего и относительно чего Вы хотите получить (как вычислять).

естественно его там нет.Оно в форме ф_фильтрация(там где весь список полей).Так вот в этой форме(ф_фильтрация) это время стоит и вычисляется оно как разница "время выезда"-"время приёма"(правда фильтр по этому полю чо та не работает)
Для полной картинки процесса сейчас добавлю ещё одну форму.
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 24.06.2011, 15:35   #10
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

вот обновлённая база
Вложения
Тип файла: rar База данных21 - копия (2).rar (364.1 Кб, 15 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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