|
Помогите с группировкой в запросе
| ☑ |
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
|
|