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