Имя: Пароль:
1C
1С v8
Изменить условия формирования отчета
0 Marfejka
 
21.11.11
11:07
Есть отчет - формирует выборку данных для лиц до 17 лет. Необходимо его исправить на пенсионеров, т.е. мужчины >60, женщины >55.
Вот часть запроса, содержащая условие <=17:

ВЫБОР
       |    КОГДА ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) = 1
       |        ТОГДА 0
       |    ИНАЧЕ ГОД(СтатистикаКонсультацииОбороты.Дата) - ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) + ВЫБОР
       |            КОГДА МЕСЯЦ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) > МЕСЯЦ(СтатистикаКонсультацииОбороты.Дата) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Дата)
       |                ТОГДА -1
       |            ИНАЧЕ 0
       |        КОНЕЦ
       |КОНЕЦ КАК Возраст
       
       |ИЗ
       |    РегистрНакопления.СтатистикаКонсультации.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК СтатистикаКонсультацииОбороты
       |ГДЕ
   |ВЫБОР
   |        КОГДА ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) = 1
   |            ТОГДА 0
   |        ИНАЧЕ ГОД(СтатистикаКонсультацииОбороты.Дата) - ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) + ВЫБОР
   |                КОГДА МЕСЯЦ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) > МЕСЯЦ(СтатистикаКонсультацииОбороты.Дата) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Дата)
   |                    ТОГДА -1
   |                ИНАЧЕ 0
   |            КОНЕЦ
   |    КОНЕЦ <= 17";


На сколько я понимаю в месте, где 17 необходимо прописать необходимое мне условие.
Пыталась так сделать:

ВЫБОР КОГДА СтатистикаКонсультацииОбороты.Пациент.Пол=Перечисления.Пол.Женский Тогда
   | КОНЕЦ >= 55
   | ИНАЧЕ
   | КОНЕЦ >= 60
   | КОНЕЦ";

А он ругается что ему надо КОНЕЦ а там ВЫБОР. Не понимаю - как написать?
1 Defender aka LINN
 
21.11.11
11:12
"КОНЕЦ >= 55" - скромнее надо быть. Все знают, что 22 - это максимум.
2 darkvett
 
21.11.11
11:33
Не особо силен в запросах, но думаю что-то вроде этого должно быть:

ВЫБОР
       |    КОГДА ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) = 1
       |        ТОГДА 0
       |    ИНАЧЕ ГОД(СтатистикаКонсультацииОбороты.Дата) - ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) + ВЫБОР
       |            КОГДА МЕСЯЦ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) > МЕСЯЦ(СтатистикаКонсультацииОбороты.Дата) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Дата)
       |                ТОГДА -1
       |            ИНАЧЕ 0
       |        КОНЕЦ
       |КОНЕЦ КАК Возраст
       
       |ИЗ
       |    РегистрНакопления.СтатистикаКонсультации.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК СтатистикаКонсультацииОбороты
       |ГДЕ
   |((ВЫБОР
   |        КОГДА ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) = 1
   |            ТОГДА 0
   |        ИНАЧЕ ГОД(СтатистикаКонсультацииОбороты.Дата) - ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) + ВЫБОР
   |                КОГДА МЕСЯЦ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) > МЕСЯЦ(СтатистикаКонсультацииОбороты.Дата) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Дата)
   |                    ТОГДА -1
   |                ИНАЧЕ 0
   |            КОНЕЦ
   |    КОНЕЦ >= 55) И (СтатистикаКонсультацииОбороты.Пациент.Пол=Перечисления.Пол.Женский)) ИЛИ
|((ВЫБОР
   |        КОГДА ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) = 1
   |            ТОГДА 0
   |        ИНАЧЕ ГОД(СтатистикаКонсультацииОбороты.Дата) - ГОД(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) + ВЫБОР
   |                КОГДА МЕСЯЦ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Пациент.ДатаРождения) > МЕСЯЦ(СтатистикаКонсультацииОбороты.Дата) * 100 + ДЕНЬ(СтатистикаКонсультацииОбороты.Дата)
   |                    ТОГДА -1
   |                ИНАЧЕ 0
   |            КОНЕЦ
   |    КОНЕЦ >= 60) И (СтатистикаКонсультацииОбороты.Пациент.Пол=Перечисления.Пол.Мужской))";
3 Marfejka
 
21.11.11
11:48
(Не поняла еще как ссылаться на того, кому пишу)
darkvett - Спасибо!!! Заработало!
4 darkvett
 
21.11.11
11:52
Сам в шоке:)