[英]SSRS Count Occurances based on multiple columns
我有一个数据集,它以以下格式返回数据;
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 A B C D
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 生长激素
yyyy-mm-01 | yyyy-mm-07 | 简·杜 A B C D
yyyy-mm-01 | yyyy-mm-07 | 乔博客| IJKL
yyyy-mm-08 | yyyy-mm-14 | 约翰·杜 A B C D
等等
如何仅计算开始日期,结束日期和资源(而不是wbs)的出现次数,并在每行上显示该计数-这样我就可以使用该计数来计算每周每wbs的分配。
例如,在上面的示例中,输出应为;
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 ABCD | 50%
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 EFGH | 50%
yyyy-mm-01 | yyyy-mm-07 | 简·杜 ABCD | 100%
yyyy-mm-01 | yyyy-mm-07 | 乔博客| IJKL | 100%
yyyy-mm-08 | yyyy-mm-14 | 约翰·杜 ABCD | 100%
等等
在此先感谢您的帮助-如果我一直不清楚,请告诉我。
旁注-我已经尝试添加行组,并且可以获取正确的计数-但这并未将计数放在每行上,而是执行以下操作(不确定该行的清晰度);
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 ABCD || 25%
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 EFGH ||
yyyy-mm-01 | yyyy-mm-07 | 简·杜 ABCD || 100%
yyyy-mm-01 | yyyy-mm-07 | 乔博客| IJKL || 100%
yyyy-mm-08 | yyyy-mm-14 | 约翰·杜 ABCD || 100%
等等
编辑:@Hannover Fist提出的解决方案似乎正在工作,但是我从lookupset中得到了一些意外的行为。
最后一行被倒数第二行覆盖。 当lookupset设置为Fields!StartDate.Value&“ |”时 &Fields!EndDate.Value,所有列均显示正确的值(分配除外)。 但是,如果我在&中加上“ |” &Fields!Resource.Value;
我重复倒数第二行。 即
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 A B C D
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 A B C D
虽然我的数据集实际上有2行;
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 A B C D
yyyy-mm-01 | yyyy-mm-07 | 约翰·杜 生长激素
任何帮助将不胜感激。 我实际上不知道发生了什么。最初,我认为这可能是转换错误或某些错误-但这似乎没有意义,因为仅显示开始日期和结束日期就不会重复该行(他们需要由于&“ |”)转换为字符串。 甚至-我尝试将开始日期和结束日期放入CSTR()中。 仍在重复。
我将使用SumLookup函数获取每个组的总数,然后将总数除以总数。
分配表达式:
=COUTROWS() / Code.SumLookup(LookupSet(
Fields!StartDate.Value & "|" & Fields!EndDate.Value & "|" & Fields!Resource.Value,
Fields!StartDate.Value & "|" & Fields!EndDate.Value & "|" & Fields!Resource.Value,
1, "Dataset1"))
码:
Function SumLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = New Decimal()
Dim ct as Integer = New Integer()
suma = 0
ct = 0
For Each item As Object In items
suma += Convert.ToDecimal(item)
ct += 1
Next
If (ct = 0) Then return 0 else return suma
End Function
http://salvoz.com/blog/2013/05/27/sum-result-of-ssrs-lookupset-function/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.