【发布时间】:2011-09-02 23:40:25
【问题描述】:
我有一个包含多个参数的存储过程。它们中的大多数允许在下拉菜单中进行多项选择。它们是:vOwner、vFunction、vSite、vStatus(允许所有多项选择并且“全选”也已启用),然后是 vStartDate 和 vEndDate。
由于某种原因,当我为每个参数选择“全选”时,SSRS 会切断一些记录。除了最后一个“所有者”的记录之外,它似乎报告了所有内容。我正在寻找关于为什么会发生这种情况的线索。当我只选择一个日期的数据时,就会发生这种情况。就好像最后一个所有者甚至没有被选为数据集的一部分。
就 SSRS 而言,设置相当简单。我有一个引用存储过程(如下)的数据集,以及我拥有的每个查找表(函数、状态等)的数据集。任何帮助表示赞赏。让我知道是否需要其他信息。谢谢!
存储过程:
@vOwner varchar(1000) = NULL,
@vFunction varchar(1000) = NULL,
@vStatus varchar(1000) = NULL,
@vLocation varchar(1000) = NULL,
@vBeginDate datetime = NULL,
@vEndDate datetime = NULL
AS
BEGIN
--Allow for multiple owners, functions, etc. to be selected in SSRS.
Select @vOwner = ', ' + @vOwner + ', '
create table #Owner
(
Owner varchar(1000)
)
Insert Into #Owner
Select ManagerLastName + ', ' + ManagerFirstName As Owner
From Managers
Where @vOwner Like '%, ' + ManagerLastName + ', ' + ManagerFirstName + ', %'
Group By ManagerLastName, ManagerFirstName
--Function
Select @vFunction = ', ' + @vFunction + ', '
create table #Function
(
Functions varchar(1000)
)
Insert Into #Function
Select Functions
From Functions
Where @vFunction Like '%, ' + Functions + ', %'
Group By Functions
--Status
Select @vStatus = ', ' + @vStatus + ', '
create table #Status
(
IssueStatus varchar(1000)
)
Insert Into #Status
Select IssueStatus
From IssueStatus
Where @vStatus Like '%, ' + IssueStatus + ', %'
Group By IssueStatus
--Sites
Select @vLocation = ', ' + @vLocation + ', '
create table #Sites
(
siteName varchar(1000)
)
Insert Into #Sites
Select siteName
From Sites
Where @vLocation Like '%, ' + siteName + ', %'
Group By siteName
Select
recID,
siteName
functions
From issueInput
Where
@vFunction Like '%, ' + functions + ', %'
And @vOwner Like '%, ' + ManagerLastName + ', ' + ManagerFirstName + ', %'
And @vStatus Like '%, ' + IssueStatus + ', %'
And @vLocation Like '%, ' + SiteName + ', %'
And (@vBeginDate Is Null Or @vBeginDate = 0 Or @vBeginDate <= Cast(Convert(varchar,(OpenDate),101) As datetime))
And (@vEndDate Is Null Or @vEndDate = 0 Or @vEndDate >= Cast(Convert(varchar,(OpenDate),101) As datetime))
Order by OpenDate
END
【问题讨论】:
-
您确定是 SSRS 切断了结果而不是查询的缺陷吗?我不太关注它,但你应该能够从 SSMS 向它传递相同的参数(全选)并验证它是否返回了预期的结果。