Схема компоновки данных - вопрос
06.10.2011
08:54
#1
Существует отчет, написанный с помощью схемы компоновки данных. В нем есть поле - вычисляемое-по очень хитрой формуле - Sum(Количество)*Выразить(Case When (isNull(РазницаНаКгСредняя,0)=0) Then РазницаНаКилограмм Else РазницаНаКгСредняя end+Case When (IsNull(Sum(Количество), 0) = 0) Then 0 Else (Sum(Сумма) - Max(ЦенаПоПрайсу) * Sum(Количество)) / Sum(Количество) End,"Число(15,2)"). Все это написано у ресурса - который рассчитывается до группировки "Номенклатура" . Это поле является прибылью. Для каждой номенклатуры все верно считается. А вот как сделать сумму от всего этого? у ресурса вложение агрегатных функций невозможно.
06.10.2011
10:12
#2
А вот еще такая странность: в вычисляемом поле написана формула :(Case When (isNull(РазницаНаКгСредняя,0)=0) Then РазницаНаКилограмм Else РазницаНаКгСредняя end+Case When (IsNull(Количество, 0) = 0) Then 0 Else (Сумма- ЦенаПоПрайсу * Количество) / Количество End)*Количество . а в ресурсе написано сумма(от этого поля)
Затем меняю формулу на (Case When (isNull(РазницаНаКгСредняя,0)=0) Then РазницаНаКилограмм Else РазницаНаКгСредняя end+Case When (IsNull(Количество, 0) = 0) Then 0 Else Выразить((Сумма- ЦенаПоПрайсу * Количество) / Количество,"Число(15,2)") End)*Количество - т.е. слагаемое одно округляю - а результат такой же ? почему так? как будто ошибка в платформе - не корректно работает функция Выразить.
Затем меняю формулу на (Case When (isNull(РазницаНаКгСредняя,0)=0) Then РазницаНаКилограмм Else РазницаНаКгСредняя end+Case When (IsNull(Количество, 0) = 0) Then 0 Else Выразить((Сумма- ЦенаПоПрайсу * Количество) / Количество,"Число(15,2)") End)*Количество - т.е. слагаемое одно округляю - а результат такой же ? почему так? как будто ошибка в платформе - не корректно работает функция Выразить.
07.10.2011
08:12
#4
Запросом не получится, т.к. схема из 2-х запросов, связанных между собой. и в формуле используются поля из разных запросов.
Читают тему
(гостей: 1)