Lookupset с дублирующимися записями SUM не работает SSRS 2008 - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть данные ниже в наборе данных, названном Вопросы, и все идентификаторы в другом наборе данных, названном Набор данных1

ID   Answer
1    Yes
2    Yes
2    No
2    Yes
3    No

Мой ожидаемый результат должен быть таким, как показано ниже

ID    Yes    No
1     1      0
2     2      1
3     0      1

Я пытаюсь сопоставить идентификаторы из набора данных1 и получить набор данных ответа из вопросов. Если я просто использую Lookup, я просто проверяю первое совпадение и игнорирую вторую запись. Например, в приведенных выше данных для ID-2 он проверяет первую запись с идентификатором 2 и считает «Да» и игнорирует другие «Нет» и «Да»

= Сумма (iif (Lookup (Поля! ID.Value, Поля! ID.Value, Поля! Answer.Value, "Вопросы") = "Да", 1, 0))

Я хочу сосчитать все Да и Нет, как показано в ожидаемом результате выше

Я пытался использовать Lookupset, но не смог заставить его работать. Есть ли более простой способ без использования пользовательского кода. Если вам нужен пользовательский код, пожалуйста, посоветуйте, как этого добиться. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы можете посчитать вывод из набора поиска, используя следующий пользовательский код:

Function CountAnswers(ByVal AnswerArray As Object(),   Answer As string) As Object

If AnswerArray Is Nothing Then Return cint(0)
If Answer Is Nothing Then Return "Nothing"

Dim TotalCount As Decimal = New Decimal() 
Dim AnswerPosition As Decimal = New Decimal()

TotalCount = 0 
For AnswerPosition = 0 to AnswerArray.GetUpperBound(0)
    TotalCount  = Switch(IsNothing(AnswerArray(AnswerPosition)),TotalCount, cstr(AnswerArray(AnswerPosition))=Answer,TotalCount + 1, TRUE,TotalCount)
Next

return TotalCount

End Function 

Затем введите следующее в поле «Да» и «Нет» в матрице набора данных1:

Code.CountAnswers(Lookupset(Fields!ID.Value, Fields!ID.Value, Fields!answer.Value,"Questions"),"Yes")
Code.CountAnswers(Lookupset(Fields!ID.Value, Fields!ID.Value, Fields!answer.Value,"Questions"),"No")
0 голосов
/ 09 ноября 2018

Зачем вам нужен второй набор данных?

Составьте матрицу для набора данных вопросов, строку, сгруппированную по идентификатору, затем используйте сумму в каждом столбце следующим образом:

=SUM(IIF(Fields!answer.Value="Yes",1,0))
=SUM(IIF(Fields!answer.Value="No",1,0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...