Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SSRS中获取联接查询的列值?_Sql Server_Database_Ssrs 2012 - Fatal编程技术网

Sql server 如何在SSRS中获取联接查询的列值?

Sql server 如何在SSRS中获取联接查询的列值?,sql-server,database,ssrs-2012,Sql Server,Database,Ssrs 2012,我已经选择了在SSRS中生成报告的联接查询。查询在SQL Server中运行良好,但当我在SSRS中添加与dataset相同的查询并尝试使用CountRows()函数获取行数时,它总是返回0(零)。我不知道我的问题出在哪里 SQL查询 SELECT PR.NAME FROm innovator.PROJECT PR INNER JOIN innovator.PROJECT_RISK LPR ON LPR.SOURCE_ID = Pr.ID INNER JOIN innovator.RISK_

我已经选择了在SSRS中生成报告的联接查询。查询在SQL Server中运行良好,但当我在SSRS中添加与dataset相同的查询并尝试使用CountRows()函数获取行数时,它总是返回0(零)。我不知道我的问题出在哪里

SQL查询

SELECT  PR.NAME 
FROm innovator.PROJECT PR
INNER JOIN innovator.PROJECT_RISK LPR ON LPR.SOURCE_ID = Pr.ID
INNER JOIN innovator.RISK_MANAGEMENT LR ON LR.id = LPR.RELATED_ID
Inner join innovator.PROGRAM_PROJECT P ON PR.ID  = P.RELATED_ID 
Inner Join innovator.PROGRAM PP ON P.SOURCE_ID = PP.ID
WHERE  pp.ID = @Id  
=CountRows(Fields!NAME.Value, "DataSetRisk")  
使用文本框的CountRows()获取总计数

SELECT  PR.NAME 
FROm innovator.PROJECT PR
INNER JOIN innovator.PROJECT_RISK LPR ON LPR.SOURCE_ID = Pr.ID
INNER JOIN innovator.RISK_MANAGEMENT LR ON LR.id = LPR.RELATED_ID
Inner join innovator.PROGRAM_PROJECT P ON PR.ID  = P.RELATED_ID 
Inner Join innovator.PROGRAM PP ON P.SOURCE_ID = PP.ID
WHERE  pp.ID = @Id  
=CountRows(Fields!NAME.Value, "DataSetRisk")  
DataSetRisk是数据集名称,name是项目表的列名。比如说

=CountRows("MyDataset")

Example : =CountRows("DataSetRisk")
将提供MyDataSet中的行数。

使用。比如说

=CountRows("MyDataset")

Example : =CountRows("DataSetRisk")

将为您提供MyDataSet中的行数。

请尝试简单一点的方法:
将(Fields!NAME.Value)
计数为列。当然,这假设字段名实际上已填充。如果列在单独的组中,它将为每个组提供计数,否则它将对整个报告计数。

尝试更简单的方法:
count(Fields!NAME.Value)
作为列。当然,这假设字段名实际上已填充。如果列在单独的组中,它将为每个组提供一个计数,否则它将对整个报告计数。

@Gaurav尝试在语法中避免使用字段名,如
=CountRows(“DataSetRisk”)
我尝试了您的上述建议,但还是没有change@Gaurav尝试在语法中避免使用字段名,如
=CountRows(“DataSetRisk”)
我尝试了您的上述建议,但仍然没有任何更改很抱歉,但此解决方案也不起作用。我认为从查询中获取别名存在一些问题。因为如果我使用单表查询并尝试检索它的值,它工作正常,但只有在使用别名的连接查询中,它不工作,您可以发布rdl吗?如果所提供的任何想法(包括您自己的想法)都没有返回0以外的值,则某些内容处于断开状态。当SQL连接数据被rdl使用时,它是一个单一的实体,因此SSR是明智的,与问题无关。当然,除非您的SQL不提供行,否则在这种情况下,您会遇到数据问题,并且任何计算行的方法都将返回0。很抱歉,此解决方案也不起作用。我认为从查询中获取别名存在一些问题。因为如果我使用单表查询并尝试检索它的值,它工作正常,但只有在使用别名的连接查询中,它不工作,您可以发布rdl吗?如果所提供的任何想法(包括您自己的想法)都没有返回0以外的值,则某些内容处于断开状态。当SQL连接数据被rdl使用时,它是一个单一的实体,因此SSR是明智的,与问题无关。当然,除非您的SQL不提供行,否则在这种情况下,您会遇到数据问题,并且任何计算行的方法都将返回0。