|
Нюансы работы с СКД | ☑ | ||
---|---|---|---|---|
0
chihpyh
15.12.16
✎
12:39
|
А не сталкивался ли кто-то с такой вот ситуацией. Есть отчет, написанный на СКД. В нем происходит группировка по ряду полей. И надо добавить новую колонку, в которой, грубо говоря, складываются значения соседних полей. Проблема в том, что значения эти не совпадают по значению группировки. Например
Заказ Поле1 = 100, Поле2 = 150 Регистратор1 Поле1 =100, Поле2 = 0 Регистратор2 Поле1 =0, Поле2 = 150 И надо получить Поле3, которое будет являться суммой полей 1 и 2. Ясно, что на уровне Регистратор такого мы не получим. Но если мы выводим отчет не разворачивая до регистратора, показывая только группировку Заказ - почему там нельзя так сделать? Пробовал и через вычисляемые поля и группировку в запросе добавлять и сами поля прописывал в запросе - ничего не помогает. Это вообще реализуемо? |
|||
1
Cyberhawk
15.12.16
✎
12:41
|
Внятную картинку вставь, на которой будет видно, как есть и как хочется
|
|||
2
Defender aka LINN
15.12.16
✎
12:57
|
Потому что у тебя там не 0 а null
|
|||
3
chihpyh
15.12.16
✎
13:09
|
Пример: https://yadi.sk/d/rfKZzz_P33aP4M
А так-то там все заЕСТЬNULLено. Считать-то оно считает, но неправильно. |
|||
4
chihpyh
17.12.16
✎
00:55
|
Извиняюсь, неправильно задачу обисовал. Пытался упростить, а получилось, что усложнил. На самом деле мне надо на уровне группировки Заказ проверить выражение Сумма1 + Сумма2 = 0 и если это выражение выполняется, то строку не выводить. Группировка Регистратор в этот момент не включена.
Может быть можно перехватить работу на этапе вывода данных в отчет, чтобы поправить данные? |
|||
5
nordbox
17.12.16
✎
05:55
|
Ну так и выводи. Кто тебе мешает???
Есть вкладочка, Вычисляемые поля в ней есть колоночка Выражение и в перед )) |
|||
6
chihpyh
19.12.16
✎
10:16
|
Дык написал же: пробовал через вычисляемые поля. Проблема в том, что вычисляет он их, видимо, на уровне Регистратор. А дальше идет тупо суммирование по группировкам. Т.е. получается картинка:
Заказ1 Сумма1 = 100 Сумма2 = -100 Сумма3 = 0 Регистратор1 Сумма1 = 100 Сумма2 = 0 Сумма3 = 100 Регистратор2 Сумма1 = 0 Сумма2 = -100 Сумма3 = -100 Он делает проверку на уровне Регистратор и там условие не выполняется. А на уровне Заказ уже проверку не делает и преспокойно выводит эту строку, несмотря на то, условие выполняется: Сумма3 = 0 |
|||
7
Defender aka LINN
19.12.16
✎
12:08
|
(6) Какое еще нафиг условие?
|
|||
8
ТупойЖадный
19.12.16
✎
12:11
|
Пригласите программиста (R)
|
|||
9
polymorph
19.12.16
✎
12:24
|
насколько я знаю, в скд все условия применяются на уровне строк. единственный вариант могу предложить в запросе сделать внутреннее соединение с вложенным запросом где будет то же самое только сгруппированное по заказам с посчитанной суммой3 и условием сумма3 <> 0 соединенное по заказу с основным запросом.
|
|||
10
mistеr
19.12.16
✎
12:32
|
(6) Сделай ресурс: СУММА(Сумма1) + СУММА(Сумма2)
|
|||
11
Радим1987
19.12.16
✎
12:39
|
ВычислитьГруппировкойМассив()
|
|||
12
chihpyh
20.12.16
✎
11:34
|
(9) Кажется в таком варианте отрежется нижняя группировка. А иногда она требуется.
(10) Сделал, не помогло. |
|||
13
mistеr
20.12.16
✎
18:39
|
(12) Что не помогло? На уровне заказа 0 выходит?
|
|||
14
chihpyh
20.12.16
✎
19:04
|
Настройки надо в стандартные скидывать... Вот я тормоз.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |