我在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或聚合值本身,但我继续得到无数的错误。
正如我原先所说,我不知道我的查询是否需要编辑,SSRS表达式是否能够正确,或两者兼而有之。但任何帮助将不胜感激!我使用的是SQLServer2008(用Microsoft SQL Server Management Studio编写)和ReportBuilder3.0。
答案 0 :(得分:2)
你可以将它放在你的sql过程结果集中,只需使用=MAX(myPercentCalc!Value,"myDataset"),
但是,我会尝试使用calc字段。可以通过IDE将计算字段添加到数据集中,其中数据集字段列表只需添加一个新值,并将值设置为表达式,这样您就可以执行CALCNCount并将表达式设置为:
=IIF(myYNField!Value="N",1,0)
然后只需在百分比计算中使用SUM(CALCNCount!Value)