Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Reporting services 在两个数据集中使用报告参数的SSRS报告_Reporting Services - Fatal编程技术网

Reporting services 在两个数据集中使用报告参数的SSRS报告

Reporting services 在两个数据集中使用报告参数的SSRS报告,reporting-services,Reporting Services,我正在修复一些非常旧的SSRS报告。我是通过直接在notepad++中编辑rdl文件来实现的,到目前为止,它一直工作得很好,因为它的格式是易于读取的XML 但是,在两个数据集中使用相同的ReportParameter时,我遇到了一个问题 我的rdl文件中有以下内容: <ReportParameters> <ReportParameter Name="Fromdate"> <DataType>DateTime</DataType&g

我正在修复一些非常旧的SSRS报告。我是通过直接在notepad++中编辑rdl文件来实现的,到目前为止,它一直工作得很好,因为它的格式是易于读取的XML

但是,在两个数据集中使用相同的ReportParameter时,我遇到了一个问题

我的rdl文件中有以下内容:

  <ReportParameters>
    <ReportParameter Name="Fromdate">
      <DataType>DateTime</DataType>
      <Prompt>From date:</Prompt>
    </ReportParameter>
    <ReportParameter Name="Todate">
      <DataType>DateTime</DataType>
      <Prompt>To date:</Prompt>
    </ReportParameter>
  </ReportParameters>
但是SSRS一直告诉我,获取此数据集的数据时出错。如果我硬编码日期,它会起作用,如下所示:

<CommandText>SELECT myColumn FROM myOtherTableOnAnotherDatabase WHERE myDate BETWEEN '2020-01-01' AND '2020-01-31'</CommandText>
在myDate介于“2020-01-01”和“2020-01-31”之间的另一个数据库上从MyThermatable中选择myColumn

如何在两个数据集的命令文本中使用相同的报表参数?

就在我即将发布问题时,我意识到我假设报表参数应使用:ParameterName传递,因为Oracle部分就是这样做的(我对Oracle语法不太熟悉,因为我过去主要使用MSSQL)。因此,我将MSSQL查询改为@,结果成功了:

WHERE myDate BETWEEN @Fromdate AND @Todate

[...]
WHERE myDate BETWEEN ':Fromdate' AND ':Todate'
[...]
WHERE myDate BETWEEN '&amp; :Fromdate &amp;' AND '&amp; :Todate &amp;'

DECLARE @startdate datetime DECLARE @enddate datetime
SET @startdate = CAST(:Fromdate as datetime)
SET @enddate = CAST(:Todate as datetime)
SELECT myColumn FROM myTable
WHERE myDate BETWEEN @startdate AND @enddate

<CommandText>SELECT myColumn FROM myOtherTableOnAnotherDatabase WHERE myDate BETWEEN '2020-01-01' AND '2020-01-31'</CommandText>
WHERE myDate BETWEEN @Fromdate AND @Todate