Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 мая 2024, 02:02

Можно ли задать такое Условие в Запросе!

Автор jul, 13 дек 2013, 09:29

0 Пользователей и 1 гость просматривают эту тему.

jul

Добрый день! Прошу помочь мне советом в работе с запросом. Есть запрос, хотелось бы знать, возможно ли в запросе задать такое условие, если свиноматка с таким кодом уже существует, то не бери ее больше. Т.е. сейчас свинка у меня выбирается столько раз , сколько она встретиться в выбраковке, абортах, падеже и т.д по датам. А мне надо чтобы она в конце концов показалась всего один раз за самую раннюю дату. И это надо сделать в запросе. Можно ли так или нет. Вот текст запроса:
Запрос.Текст    =             "ВЫБРАТЬ
                                                |             НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения) КАК НеделяОсеменения,
                                                |             ВЫБОР
                                               |                             КОГДА НЕДЕЛЯ(ВТ_Выбывшие.ПериодВыбытия) < НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения)
                                                |                                             ТОГДА НЕДЕЛЯ(КОНЕЦПЕРИОДА(ВТ_Выбывшие.ПериодОсеменения, ГОД)) + НЕДЕЛЯ(ВТ_Выбывшие.ПериодВыбытия) - НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения)
                                                |                             ИНАЧЕ НЕДЕЛЯ(ВТ_Выбывшие.ПериодВыбытия) - НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения) + 1
                                                |             КОНЕЦ КАК НеделяВыбытия,
                                                |             ВТ_Выбывшие.Свиноматка КАК Свиноматка,
                                                |             СУММА(0) КАК Повтор,
                                                |             СУММА(ВЫБОР
                                                |                                             КОГДА ВТ_Выбывшие.Маркер = 2
                                                |                                                            ТОГДА 1
                                                |                                             ИНАЧЕ 0
                                                |                             КОНЕЦ) КАК Тест,
                                                |             СУММА(ВЫБОР
                                                |                                             КОГДА ВТ_Выбывшие.Маркер = 3
                                                |                                                            ТОГДА 1
                                                |                                             ИНАЧЕ 0
                                                |                             КОНЕЦ) КАК Выбрак,
                                                |             СУММА(ВЫБОР
                                                |                                             КОГДА ВТ_Выбывшие.Маркер = 4
                                                |                                                            ТОГДА 1
                                                |                                             ИНАЧЕ 0
                                                |                             КОНЕЦ) КАК Падеж,
                                                |             СУММА(ВЫБОР
                                                |                                             КОГДА ВТ_Выбывшие.Маркер = 5
                                                |                                                            ТОГДА 1
                                                |                                             ИНАЧЕ 0
                                                |                             КОНЕЦ) КАК Аборт
                                                |ИЗ
                                                |             ВТ_Выбывшие КАК ВТ_Выбывшие
                                                |
                                                |СГРУППИРОВАТЬ ПО
                                                |             НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения),
                                                |             ВЫБОР
                                                |                             КОГДА НЕДЕЛЯ(ВТ_Выбывшие.ПериодВыбытия) < НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения)
                                                |                                             ТОГДА НЕДЕЛЯ(КОНЕЦПЕРИОДА(ВТ_Выбывшие.ПериодОсеменения, ГОД)) + НЕДЕЛЯ(ВТ_Выбывшие.ПериодВыбытия) - НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения)
                                                |                             ИНАЧЕ НЕДЕЛЯ(ВТ_Выбывшие.ПериодВыбытия) - НЕДЕЛЯ(ВТ_Выбывшие.ПериодОсеменения) + 1
                                                |             КОНЕЦ,
                                                |             ВТ_Выбывшие.Свиноматка
                                                |ИТОГИ
                                                |             КОЛИЧЕСТВО(Свиноматка),
                                                |             СУММА(Повтор),
                                                |             СУММА(Тест),
                                                |             СУММА(Выбрак),
                                                |             СУММА(Падеж),
                                                |             СУММА(Аборт)
                                                |ПО
                                                |             НеделяОсеменения,
                                                |             НеделяВыбытия";
                ДеревоВыбывшие       =                Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

БезПонтов

попробуй функцию Минимум(ВТ_Выбывшие.ПериодОсеменения)
Ответ на вопрос - бесплатно!
Ответ на дурацкий вопрос - 5$
Ответ на дурацкий вопрос с обдумыванием - 100$

jul

А вы куда предлагаете поставить эту функцию в условиях или в переменных?
Если в условиях, то пишет, что операция не разрешена в предложении.

БезПонтов

Ответ на вопрос - бесплатно!
Ответ на дурацкий вопрос - 5$
Ответ на дурацкий вопрос с обдумыванием - 100$

jul

Поставила Минимум в переменных, не хочет ни в какую ее ставить. Нажимаю "ОК" и Минимум пропадает из выражения!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск