Проблема, с которой я сталкиваюсь, состоит в том, что службы отчетов SQL Server не любят нотацию Sum (First ()). Это позволит только Sum () или First ().
Контекст
Я создаю отчет о сверке. то есть. какой носок у нас был в начале периода, что было заказано и какой запас у нас был в конце.
Набор данных возвращает что-то вроде
Type,Product,Customer,Stock at Start(SAS), Ordered Qty, Stock At End (SAE)
Export,1,1,100,5,90
Export,1,2,100,5,90
Domestic,2,1,200,10,150
Domestic,2,2,200,20,150
Domestic,2,3,200,30,150
Я группирую по типу, затем по продукту и перечисляю клиентов, которые купили этот продукт
Я хочу отобразить итоговые значения для SAS, Упорядоченного Кол-во и SAE, но если я сделаю Сумму для SAS или SAE, я получу значение 200 и 600 для Продукта 1 и 2 соответственно, когда оно должно быть 100 и 200 соответственно.
Я думал, что мог бы сделать Sum (First ()), но SSRS жалуется, что у меня не может быть агрегата в агрегате.
В идеале для SSRS требуется сумма (Distinct ())
Решения пока что
1. Не показывайте Запас в начале и Запас в конце как часть итогов.
2. Напишите некоторый код прямо в отчете, чтобы сделать расчет. попробовал это - не сработало, как я ожидал.
3. Напишите сборку, чтобы сделать расчет. (Не пробовал этот)
Правка - Разрешение проблем
Проблема связана с тем, что на самом деле это два отчета, объединенных в один (как я вижу). Производственный отчет и отчет о продажах.
В отчете пытались учесть эти критерии
- рынок, на который мы его продали (внутренний, экспорт)
- сколько у нас было в наличии,
- сколько было произведено,
- сколько было продано,
- кому мы его продали,
- сколько у нас осталось.
Сложным фактором является тот, кому мы его продали. без этого это было бы относительно легко. Но в том числе это означает, что другие верхние показатели (запас в начале и запас в конце) не имеют ничего общего с тем, что продается, кроме конкретного продукта.