Имя: Пароль:
1C
1С v8
Помогите с группировкой в запросе
,
0 KIraA
 
12.12.18
09:38
УП. 8.3.

Есть Контрагент-у него есть объекты с различными статусами. Нужно выбрать только тех Контрагентов у которых  КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОБ_ох.СтатусОбъекта) = 1 и соответственно его статус).

Вот запрос
|ВЫБРАТЬ
|    ОБ_ох.Контрагенты КАК Контрагенты,
|    ВЫБОР
|        КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОБ_ох.СтатусОбъекта) = 1
|            ТОГДА ОБ_ох.СтатусОбъекта
|    КОНЕЦ КАК Поле1
|ИЗ
|    ОБ_ох КАК ОБ_ох
|
|СГРУППИРОВАТЬ ПО
|    ОБ_ох.Контрагенты,
|    ОБ_ох.СтатусОбъекта";

Что не так?
1 Mankubus
 
12.12.18
09:45
Посчитай количество во вложенном запросе
2 DrWatson
 
12.12.18
09:46
(0) Когда СтатусОбъекта стоит в группировках, тогда КОЛИЧЕСТВО(ОБ_ох.СтатусОбъекта) всегда будет 1.
Нужно отдельным подзапросом выбрать контрагентов, удовлетворяющих условию. И внутренним соединением уже его статус.
Если без "соответственно его статус", то становится всё гораздо проще.
3 KIraA
 
12.12.18
10:01
Спасибо за идею, сработало
4 olegves
 
12.12.18
10:03
достаточно в конце запроса дописать:
ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОБ_ох.СтатусОбъекта) = 1
5 catena
 
12.12.18
10:31
(4)Да? И что же это даст?
6 НЕА123
 
12.12.18
10:45
|ВЫБРАТЬ
|    ОБ_ох.Контрагенты КАК Контрагенты,
|    Максимум(ОБ_ох.СтатусОбъекта) КАК СтатусОбъекта
|ИЗ
|    ОБ_ох КАК ОБ_ох
|
|СГРУППИРОВАТЬ ПО
|    ОБ_ох.Контрагенты
|   ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОБ_ох.СтатусОбъекта) = 1