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

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

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

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

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

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

Доброго здоровья всем! Возникли проблемы с подготовкой итогового отчёта.Не могу понять как прописать в запросе, что бы в отчёте- в нужном поле появлялась цифра (кол-во найденных значений).Наверняка это распространённая операция.Подскажите пожалуйста!!!
Изображения
Тип файла: jpg отчёт.jpg (116.0 Кб, 128 просмотров)
Вложения
Тип файла: rar База данных21 - копия.rar (346.9 Кб, 15 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 08.06.2011, 22:55   #2
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Если я правильно понял, то Вы пытаетесь сделать что-то вроде перекрестного запроса: по горизонтали - точные диагнозы, по вертикали - даты, а в ячейках - количество. Судя по тому, что количество столбцов в отчете у Вас фиксировано, то предполагаю, что не все варианты точных диагнозов интересуют, а только перечисленные в примере. Если я угадал, тогда Вам следует построить запрос с группировкой и условным суммированием. Сейчас набросаю примерчик и дополню им сообщение...
Код:
SELECT з_фильтрация.дата, Sum(IIf([точный_диагноз] Like "*гипертон*" Or [точный_диагноз] Like "*ГБ*" Or [точный_диагноз] Like "*гипертен*" Or [точный_диагноз] Like "*гб*",1,0)) AS ГБ
FROM з_фильтрация
GROUP BY з_фильтрация.дата;
Немного поясню. Создаем запрос на базе таблицы "вызовы", добавляем поле "дата", жмем кнопку "Итоги". Дальше с помощью построителя выражений во втором столбце пишем выражение, которое принимает значение 1, если точный диагноз похож на ГБ, и 0, если нет. Называем это выражение ГБ. Обратите внимание на значение "Групповая операция" для первого и второго столбца. Сохраняем запрос под именем, например, СтатДиаг.
Дальше заменяем в отчете источник данных на новый запрос, полю "дата" назначаем данные "дата" а свободному полю под заголовком ГБ назначаем данные ГБ. Проверяем. Если работает правильно, то соответствующие выражения для остальных диагнозов и к свободным полям привязываем соответствующие данные.
Если руки золотые, то не важно, откуда они растут.

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

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

Я вынужден на сегодня закруглиться. Если что - пишите, но отвечу только завтра.
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 09.06.2011, 14:06   #5
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

в этот раз что-то не получилось выдаёт ошибку синтаксиса
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 09.06.2011, 20:34   #6
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Код:
SELECT DISTINCTROW Format$(a.[дата],'Long Date') , Count(a.Код), "ГБ" AS F1
FROM вызов a
WHERE ((a.точный_диагноз) Like "*гипертон*" Or (a.точный_диагноз) Like "*ГБ*" 
Or (a.точный_диагноз) Like "*гипертен*" Or (a.точный_диагноз) Like "*гб*")
GROUP BY Format$(a.[дата],'Long Date');

Делайте так, скажу как Вам будет проще:
1. формируете 5 таких запросов , для каждого условия
2. открываете SQL и копируете туда все запросы
Важно! после каждого запроса (кроме последнего), убираем ";"
добавляем между запросами слово UNION
3. Выполняем, проверям если все ок то должно получиться типа
дата по дням | Count-Код | F1
1 Июнь 2011 г. | 6 |ГБ
1 Июнь 2011 г. | 2 |ДТП

______________________________

если результат (примерно такой) , значит все правильно сделали

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


Дмитрий.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 09.06.2011 в 20:37.
R Dmitry вне форума Ответить с цитированием
Старый 09.06.2011, 20:52   #7
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Вот мой вариант (правда, про ИВЛ не понял, в какой колонке):

Дмитрий! При открытии отчета запрашивается параметр, хотя не должен. Где косяк? не могу найти...
Вложения
Тип файла: rar База данных21 - копия.rar (193.3 Кб, 14 просмотров)
Если руки золотые, то не важно, откуда они растут.

Последний раз редактировалось ovt256; 09.06.2011 в 21:11.
ovt256 вне форума Ответить с цитированием
Старый 09.06.2011, 21:23   #8
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от ovt256 Посмотреть сообщение
Вот мой вариант (правда, про ИВЛ не понял, в какой колонке):

Дмитрий! При открытии отчета запрашивается параметр, хотя не должен. Где косяк? не могу найти...

даже и не знаю

Код:
SELECT a.дата, Sum(IIf(a.[точный_диагноз] Like "*гипертон*" Or a.[точный_диагноз] Like "*ГБ*" Or a.[точный_диагноз] 
Like "*гипертен*" Or a.[точный_диагноз] Like "*гб*",1,0)) AS ГБ, Sum(IIf([ОПИСАНИЕ] Like "*ДТП*",1,0)) AS ДТП, 
Sum(IIf(a.[точный_диагноз] Like "*ЗЧМТ*",1,0)) AS ЗЧМТ, Sum(IIf(a.[возраст_пациента]<16,1,0)) AS Дети
FROM повод INNER JOIN вызов AS a ON повод.Повод = a.Повод
GROUP BY a.дата;
попробовал заменить тоже не помогает , странно что запрос отрабатывает корректно
___________________________________ ___

сделал новый отчет все отработало нормально, скорее всего где то в системной таблице какая нибудь ссылочка есть

ps
да унион не обязательно использовать, если все критерии в разных полях, то лучше вариант не мой использовать, хотя тоже работать будет.
Если же допустим надо будет выводить отчет, где два параметра будут в одном поле т.е допустим выводить два диагноза, тогда только мой вариант можно будет использовать
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 09.06.2011 в 21:28. Причина: ps
R Dmitry вне форума Ответить с цитированием
Старый 09.06.2011, 21:32   #9
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Цитата:
Сообщение от R Dmitry Посмотреть сообщение
сделал новый отчет все отработало нормально, скорее всего где то в системной таблице какая нибудь ссылочка есть

ps
да унион не обязательно использовать, если все критерии в разных полях, то лучше вариант не мой использовать, хотя тоже работать будет.
Если же допустим надо будет выводить отчет, где два параметра будут в одном поле т.е допустим выводить два диагноза, тогда только мой вариант можно будет использовать
dr03! Похоже, придется Вам отчет переделывать по-новой... Но, как говорится: повторенье - мать ученья
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 09.06.2011, 21:41   #10
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

Огромный Вам мегареспект!!!! Такое подробное изложение решения проблем ...да мне просто обзавидуются
То что при открытии отчёта всплывает "введите...." думаю от того, что в таблице "вызов" по которой строился запрос,этот поле было обязательным для заполнения.Хотя может я завысил свои знания
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
итоговый столбец по строкам таблицы mortal2010 Microsoft Office Access 22 31.01.2011 10:55
копирование строк на итоговый лист, если ... ruan65 Microsoft Office Excel 2 10.06.2010 14:47
Подготовить теоретическую часть. Jonson37rus Помощь студентам 0 19.04.2010 15:09
Копирование данных с разных на итоговый лист bukjob Microsoft Office Excel 18 05.03.2010 10:08
Итоговый запрос на С++ D[I]K Общие вопросы C/C++ 1 20.09.2009 20:37