【发布时间】:2016-12-28 01:14:49
【问题描述】:
我目前正在为我的项目使用 SQL Server 2012 和 Visual Studio 2012。
我的问题是我在下面有以下代码,它包含声明变量。基本上,当我在我的 SQL 服务器中使用它时,我将 @StartDate 设置为当月的第一天,将 @EndDate 设置为当月的最后一天(十二月)。
DECLARE @StartDate date
DECLARE @EndDate date
-- SET @StartDate = '20161201'
-- SET @EndDate = '20161231'
SELECT A.[TYPE_NAME], -- Type_Name
A.[STRT_DTTM], --Start Date
A.[END_DTTM], --End Date
B.[ASSIGNED_DT], --Assigned Date
CASE WHEN (CAST(A.[STRT_DTTM] AS DATE) <= @EndDate AND (CAST(A.[END_DTTM] as date) > @EndDate OR A.[END_DTTM] IS NULL))
THEN 1
ELSE 0
END AS 'OpenIndicator',
CASE WHEN CAST(A.[END_DTTM] as DATE) between @StartDate AND @EndDate
THEN 1
ELSE 0
END AS 'ClosedIndicator',
CASE WHEN CAST(B.[ASSIGNED_DT] as DATE) between @StartDate AND @EndDate
THEN 1
ELSE 0
END AS 'AssignedIndicator',
FROM Report AS A
INNER JOIN Dimension AS B
ON A.[ID] = B.[ID]
WHERE 1=1
AND A.[EXPIRE_DATE] = '12/31/9999' --Expire Date (Basically looking for active records.)
AND (A.[TYPE_NAME] like '%Bicycle%'
OR A.[TYPE_NAME] like '%Car%')
到目前为止,在 SSRS 中,我已将上述代码放入数据集中。我还在 SSRS StartDate 和 EndDate 中创建了 2 个参数。当我尝试基于数据集运行一个简单的 tablix 时...什么也没有出现。
我注释掉了 SET @StartDate = '20161201' 和 SET @EndDate = '20161231'。
我在工作中能做的事情非常有限,所以很遗憾我也不能使用存储过程,因为我认为这样会更容易。
但我正在尝试通过用户输入两个参数 StartDate 和 EndDate 的内容来填充类似销售的数据集,但我在 SSRS 中遇到了问题。谁能帮我具体做什么,我很迷茫。
试图在代码中注释以使其更易于理解,但由于不想在工作中遇到麻烦而不得不更改一些东西。
【问题讨论】:
-
也许是一个愚蠢的问题,但您是否真的将 SSRS 参数映射到 SSRS 中的查询参数?在 SSRS 中仅创建参数是不够的。此外,如果您在 SSRS 报告中有参数,则无需在查询中再次声明它们。只需确保参数正确映射到查询即可。
标签: sql-server sql-server-2012 ssrs-2012