繁体   English   中英

基于多列的SSRS计数发生率

[英]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的分配。

例如,在上面的示例中,输出应为;

开始日期| 结束日期| 资源| 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%

等等

在此先感谢您的帮助-如果我一直不清楚,请告诉我。

旁注-我已经尝试添加行组,并且可以获取正确的计数-但这并未将计数放在每行上,而是执行以下操作(不确定该行的清晰度);

开始日期| 结束日期| 资源| WBS | 分配

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 

在SSRS中汇总查询

http://salvoz.com/blog/2013/05/27/sum-result-of-ssrs-lookupset-function/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM