Добавление значений в отчет при отсутствии данных в запросе SSRS

У меня есть запрос, который возвращает номер торгового представителя, категорию, продажи.

Результат примерно такой:

введите здесь описание изображения

Есть 4 категории под названием G1,G2,G3,G4.

Как видите, торговый представитель 11 продал по 10 товаров каждой категории (желтые ряды). Но Представитель 12 продается только для категорий G3 и G4.

Идея состоит в том, чтобы показать в отчете все категории и заполнить 0 всех тех, кто не продал в этой конкретной категории.

Он должен быть сгруппирован по торговым представителям, поэтому, если вы сгруппируете табликс по торговым представителям, у вас будет что-то вроде этого:

введите здесь описание изображения

Но вы хотите что-то вроде этого:

введите здесь описание изображения

Есть ли какое-нибудь выражение, которое я мог бы использовать, чтобы добавить их?

Что я сделал до сих пор, так это создал группу, эта группа, конечно же, является моими торговыми представителями, объединил ячейки для этого столбца и создал группу строк для каждой категории, что-то вроде этого:

введите здесь описание изображения

Но если вы выполните этот отчет, он будет повторять все категории G1, G2... Каждый раз, когда эта категория существует для этого конкретного торгового представителя.

Другая проблема заключается в том, как вы можете оценить жестко закодированную категорию в своем отчете, если она не существует в вашем источнике данных, которую вы не можете сделать Iif("G1" = Fields!Category.Value,Fields!Sales.Value,"0"), поскольку вы не сравниваете G1 с Null или IsNothing, вы сравниваете то, что существует.


person Nickso    schedule 22.10.2015    source источник
comment
Вы можете оценить жестко запрограммированное значение, используя ReportItems!Textbox1.Value, просто замените textbox1 для текстового поля, в котором вы жестко закодировали значение.   -  person alejandro zuleta    schedule 22.10.2015
comment
Да, я знаю, но как вы можете сравнивать что-то с чем-то, чего нет в вашем наборе данных, и не только это, как вы можете избежать повторяющихся строк?   -  person Nickso    schedule 22.10.2015


Ответы (1)


Я думаю, вы можете легко добиться этого, используя T-SQL на уровне запроса. Я не знаю, почему вы не используете самый простой способ применения такой логики, поскольку в T-SQL вы можете использовать почти любую логику.

Однако мне нравятся такие проблемы, поэтому я предлагаю это возможное решение.

Это мой пример набора данных:

введите здесь описание изображения

В наборе данных SSRS (не в T-SQL) я добавил вычисляемое поле с именем Another

введите здесь описание изображения

В другом поле установлено следующее выражение:

=Fields!SalesRep.Value & "-" & Fields!Category.Value

Я добавил табликс со следующим расположением данных

введите здесь описание изображения

Как я упоминал ранее, поле категории жестко закодировано, правый столбец с Sales установлен в это выражение:

=iif(IsNothing(lookup(Fields!SalesRep.Value & "-" & ReportItems!Textbox62.Value,
Fields!Another.Value,Fields!Sales.Value,"DataSet7")),0,
lookup(Fields!SalesRep.Value & "-" & ReportItems!Textbox62.Value,
Fields!Another.Value,Fields!Sales.Value,"DataSet7"))

Примечание. ReportItems!Textbox62.Value соответствует текстовому полю, где G1 было жестко запрограммировано. Вы должны заменить ссылку на текстовое поле на соответствующую в табликсе для каждой категории.

Он будет предварительно просматривать табликс ниже.

введите здесь описание изображения

Дайте мне знать, если это было полезно.

person alejandro zuleta    schedule 22.10.2015
comment
Вы, сэр, мужчина. Помечено как ответ, который я искал. - person Nickso; 22.10.2015
comment
Можно ли повторить эту логику для другого набора данных? Оба набора данных имеют одинаковые поля, разница в том, что другой набор данных может иметь или не совпадать с одним и тем же торговым представителем / категорией. - person Nickso; 26.10.2015
comment
Вы можете использовать эту логику для получения продаж для любой комбинации Sales Rep - Category. если комбинация Sales Rep -Category не соответствует значениям набора данных, она вернет 0 для продаж. Если вы не можете заставить его работать, поделитесь новым набором данных и желаемым табликсом в другом вопросе. - person alejandro zuleta; 26.10.2015
comment
Здесь stackoverflow.com/questions/33348130/ - person Nickso; 26.10.2015