Sql 在不硬编码查询的情况下生成SSRS报告

Sql 在不硬编码查询的情况下生成SSRS报告,sql,ssrs-2008,Sql,Ssrs 2008,我刚刚开始使用SSRS2008和SQLServer2008。我正在尝试创建一个涉及查询某些部门及其子部门的报告(例如,一个部门类似于“金融部门”,其子部门类似于“银行”、“转账”等)。 然而,部门和子部门正在快速变化,我不知道如何在不硬编码部门和子部门的情况下生成报告。我想做的是类似于for循环的事情,我可以首先查询扇区,然后查询每个扇区的子扇区。 有人知道怎么做吗?不要使用循环,而是使用连接。例如,假设您想查找“金融”部门中的公司数量,但您只记录公司的子部门-请尝试以下操作: select c

我刚刚开始使用SSRS2008和SQLServer2008。我正在尝试创建一个涉及查询某些部门及其子部门的报告(例如,一个部门类似于“金融部门”,其子部门类似于“银行”、“转账”等)。 然而,部门和子部门正在快速变化,我不知道如何在不硬编码部门和子部门的情况下生成报告。我想做的是类似于for循环的事情,我可以首先查询扇区,然后查询每个扇区的子扇区。
有人知道怎么做吗?

不要使用循环,而是使用连接。例如,假设您想查找“金融”部门中的公司数量,但您只记录公司的子部门-请尝试以下操作:

select count(*)
from dbo.company c, dbo.sector s
where c.subsector = s.subsector and s.sector = 'financial'
要将其扩展到报表,请尝试使用以下查询作为报表的基础:

select c.name company_name, s.subsector, s.sector
from dbo.company c, dbo.sector s
where c.subsector = s.subsector and 
s.sector like @sector and 
s.subsector like @subsector
如果始终填充部门和子部门,则针对每个参数输入%将返回所有公司;针对金融部门和针对子部门的%进入将返回金融部门的所有公司;等等