Имя: Пароль:
1C
 
Отбор по диапазону не числовых кодов
,
0 Chuvaschow
 
25.04.18
19:26
Здравствуйте, уважаемые форумчане!

Снова требуется Ваш совет. Постановка задачи такая:
есть документ, один из реквизитов которого - справочник. Справочник имеет два реквизита - код (не числовой, вида F20, E03.1, M0.1*) и собственно наименование. Необходимо построить отче, в котором подсчитать сколько документов с таким-то кодом, сколько с кодами из группы такой-то, сколько документов с кодами из диапазона F20-F41.5 и так далее.

https://ibb.co/dFN99H

Подскажите, как строить запрос по диапазонам, тем более не числовых кодов?

Буду очень признателен за помощь.
1 один я дАртаньян
 
25.04.18
19:30
F20,F21,F22, F23.6, F41.5 - Это один диапазон или три?
2 Chuvaschow
 
25.04.18
19:33
Это диапазон из группы F00-F45
Да, это один диапазон
3 fedoss
 
25.04.18
19:40
Так если это коды МКБ, их можно спокойно сравнивать как строки.
Они же все по формату БЦЦ.Ц
4 Chuvaschow
 
25.04.18
19:44
(3) Научите, пожалуйста :)
5 fedoss
 
25.04.18
19:46
Ну, например для (2): "F00" <= Код <= ("F45" + ".9")
6 один я дАртаньян
 
25.04.18
19:47
(2) Т.е. все что "F" - это один диапазон?

Нутак тупо бери первую букву и групируй по нему.
7 Chuvaschow
 
25.04.18
20:28
Хорошо, попробуем.
Попутный вопрос: как лучше организовать подсчеты? написать множество запросов или исполнить один большой и в нем как-то организовывать группировку по условиям и подсчет количества документов?

Запрос простой


    Запрос.Текст = "ВЫБРАТЬ
                   |    Обращения.Ссылка,
                   |    Обращения.ВерсияДанных,
                   |    Обращения.ПометкаУдаления,
                   |    Обращения.Номер,
                   |    Обращения.Дата,
                   |    Обращения.Проведен,
                   |    Обращения.Пол,
                   |    Обращения.Возраст,
                   |    Обращения.ФИО,
                   |    Обращения.Категория,
                   |    Обращения.Исход,
                   |    Обращения.ДатаПоступления,
                   |    Обращения.ДатаВыписки,
                   |    Обращения.БольничныйЛист,
                   |    Обращения.Диагноз,
                   |    Обращения.Поступление,
                   |    Обращения.МестоЖительства,
                   |    Обращения.Организация
                   |ИЗ
                   |    Документ.Обращения КАК Обращения
                   |ГДЕ
                   |    Обращения.ПометкаУдаления = ЛОЖЬ
                   |    И Обращения.Дата <= &ДатаОкончания
                   |    И Обращения.Дата >= &ДатаНачала
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    Обращения.Ссылка,
                   |    Обращения.ВерсияДанных,
                   |    Обращения.ПометкаУдаления,
                   |    Обращения.Номер,
                   |    Обращения.Дата,
                   |    Обращения.Проведен,
                   |    Обращения.Пол,
                   |    Обращения.Возраст,
                   |    Обращения.ФИО,
                   |    Обращения.Категория,
                   |    Обращения.Исход,
                   |    Обращения.ДатаПоступления,
                   |    Обращения.ДатаВыписки,
                   |    Обращения.БольничныйЛист,
                   |    Обращения.Диагноз,
                   |    Обращения.Поступление,
                   |    Обращения.МестоЖительства,
                   |    Обращения.Организация";
8 Chuvaschow
 
25.04.18
20:32
То есть можно так:

-получить результат полного запроса
-подсчитать количество строк запроса ограничив условием "F00" <= Код <= ("F45" + ".9")
-подсчитать количество строк запроса ограничив условием "M00" <= Код <= ("M20" + ".8") и Результат.Возраст > 19
- и т.д.

Мне представляется это долгим путем...
9 Philix
 
25.04.18
20:55
(0) Мэтр, настоятельно рекомендую обогатить справочник еще двумя реквизитами, в которые растащить буквенную часть и цифровую. Тогда отчет строится за милую душу.
10 Chuvaschow
 
25.04.18
20:59
Думал об этом.
Но все же, как обрабатывать запрос?
11 mistеr
 
25.04.18
21:04
(9) Я бы добавил один реквизит - справочник групп/диапазонов. Заполнять можно автоматически при записи.