|   |   | 
| 
 | Нюансы работы с СКД | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Настройки надо в стандартные скидывать... Вот я тормоз.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |