如何获得SSRS矩阵中的百分比

时间:2015-12-31 17:07:57

标签: sql sql-server matrix reporting-services

我在SQL编码和使用SSRS方面很陌生,所以我不知道在我的查询中是否应该修复这个问题,或者SSRS方面是否有简单的答案。我有一个简单的查询,我已将其放入SSRS并添加了一个Matrix来查看数据。在决赛" Total"第一行我试图根据某一列中的数据输入一些额外的总数,例如百分比。这是我的疑问:

SELECT
       ADV.Account
       ADV.City
       ADV.LocationID
       NUR.QueryID
       NUR.Response
FROM ADV.Visits ADV
LEFT JOIN NUR.Responses  NUR   ON (NUR.VisitID  = ADV.VisitID AND
                                   NUR.SourceID = ADV.SourceID )
WHERE NUR.QueryID = '1' AND
NUR.DateTime BETWEEN "x" AND "y" AND
ADV.LocationID IN ('1stFloor', '2ndFloor', 'ICU')

以下是我的回复示例

AccountNumber   City    LocationID  QueryID Response
12345         JAMESTOWN    ICU          1      Y
13254         JAMESTOWN    ICU          1      N
13584         SIMCITY    1stFloor       1      Y
18789         JAMESTOWN  1stFloor       1      N
45678         JAMESTOWN  1stFloor       1      Y
56789         CITYSCAPE  1stFloor       1      Y
48971         JAMESTOWN  1stFloor       1      Y
457895        CITYSCAPE  1stFloor       1      Y

以下是SSRS中矩阵的样子。我总结基于Y(是)或N(否)回复以及底部的完整总数。我现在想(在红色框中)放置一个表达式,它将给出N个响应的百分比。我已经尝试了十几种不同的方法,包括添加一个单独的表来执行表达式,添加两个不同的数据集,一个键入Y响应,一个键入N,并将它们放在单独的矩阵中,然后尝试在第三个表通过引用ReportItems!TextBox.Value或聚合值本身,但我继续得到无数的错误。

enter image description here

正如我原先所说,我不知道我的查询是否需要编辑,SSRS表达式是否能够正确,或两者兼而有之。但任何帮助将不胜感激!我使用的是SQLServer2008(用Microsoft SQL Server Management Studio编写)和ReportBuilder3.0。

1 个答案:

答案 0 :(得分:2)

你可以将它放在你的sql过程结果集中,只需使用=MAX(myPercentCalc!Value,"myDataset"),但是,我会尝试使用calc字段。可以通过IDE将计算字段添加到数据集中,其中数据集字段列表只需添加一个新值,并将值设置为表达式,这样您就可以执行CALCNCount并将表达式设置为:

=IIF(myYNField!Value="N",1,0)

然后只需在百分比计算中使用SUM(CALCNCount!Value)

相关问题