|
Помощь в запросе. Количество(Различные()) ↓ (Волшебник 20.10.2017 10:54) |
☑ |
0
DmitryNN
20.10.17
✎
10:46
|
Добрый день, коллеги.
Никак не могу решить задачу, нужно в итогах запроса прописать условие КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Регистратор), но при этом чтобы он посчитал только документы РТУ, т.е. отбор по типу. В Выборке много документов РТУ, которые могут дублироваться и документы Возврата.
Как это сделать?
|
|
1
perester
20.10.17
✎
10:48
|
текст запроса?)
|
|
2
DrShad
20.10.17
✎
10:49
|
(1) +1
начать с написания текста запроса
|
|
3
azernot
20.10.17
✎
10:50
|
Как вариант
Само поле
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Выбор когда Регистратор Ссылка Документ.РТУ тогда Регистратор иначе Неопределено конец) -1
В подзапросе нужно объединение, в котором обязательнос присутствует Неопределено в поле Регистратор
|
|
4
DmitryNN
20.10.17
✎
10:51
|
Это УПП 1.3, Универсальный отчет, который строится на основании регистра, текста запроса нет. Прописываю ресурс через строку итогов, например, вот так:
УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоОтгрузок", "ВЫБОР КОГДА ИсточникДанных.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг Тогда ИсточникДанных.Регистратор Иначе Значение(Документ.РЕализацияТоваровУслуг.ПустаяСсылка) Конец", "Кол-во отгрузок", "Количество(РАЗЛИЧНЫЕ(КоличествоОтгрузок))");
|
|
5
DrShad
20.10.17
✎
10:53
|
(4) [текста запроса нет.] да неужели!?
|
|
6
DmitryNN
20.10.17
✎
10:54
|
(3) Вот я примерно так и пытаюсь, но всегда может быть так что Возврата нет, тогда может быть - 1 лишний
|
|
7
azernot
20.10.17
✎
10:54
|
(4) Если в регистраторах есть не РТУ, то на 1 врать будет.
|
|
8
DmitryNN
20.10.17
✎
10:57
|
(7) Но если нет возврата, тогда вместо 5 РТУ (допустим их там столько) он покажет 4
|
|
9
azernot
20.10.17
✎
10:57
|
(6) Без переделывания запроса "ИсточникДанных" не взлетит. Нужно там принудительно добавлять ПустуюСсылку с нулевыми ресурсами и вычитать 1, или подзапрос с внутренним соединением с Документ.РТУ, где считать количество различных..
|
|
10
DmitryNN
20.10.17
✎
11:00
|
(9) Ммм...Может быть так?...
Выбор когда МАКСИМУМ(ЧТОТО ГДЕ ТОЛЬКО ВОЗВРАТЫ) <> 0 Тогда -1 Иначе 0 Конец + Количество(РАЗЛИЧНЫЕ(КоличествоОтгрузок))
|
|
11
patria0muerte
20.10.17
✎
11:00
|
А если например вот так:
УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоОтгрузок", "ВЫБОР КОГДА ИсточникДанных.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг Тогда ИсточникДанных.Регистратор Иначе NULL Конец", "Кол-во отгрузок", "Количество(РАЗЛИЧНЫЕ(КоличествоОтгрузок))");
?
|
|
12
patria0muerte
20.10.17
✎
11:00
|
Вроде как NULL в расчет агрегатных функций не включается.
|
|
13
DmitryNN
20.10.17
✎
11:03
|
(12) Красавчик)
ВЫБРАТЬ
NULL КАК Поле1
ПОМЕСТИТЬ ВТ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"patria0muerte был прав"
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ.Поле1) КАК Поле1
ИЗ
ВТ КАК ВТ
Результат 1
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший