【发布时间】:2014-01-10 15:34:56
【问题描述】:
我在 SSRS 2008 R2 中有以下矩阵:
我想做的只是显示“FTE”行有值的列。 (用红色圆圈标记)。我已经尝试了基于列属性中的表达式的过滤器和显示/隐藏选项,但我不知道如何仅在“类别”=“FTE”时引用行。我的数据如下所示:
tblPhysicians
employee_id last_name ...
102341145 Smith
123252252 Jones
tblPhysiciansMetrics
id fy period division_name category_name employee_id
123 2014 1 Allergy Overhead 123456
124 2014 1 Allergy Salary 125223
125 2014 1 Allergy FTE 1.0
query
SELECT * FROM
tblPhysicians
INNER JOIN tblPhysicianMetrics
ON tblPhysicians.employee_id = tblPhysicianMetrics.employee_id
WHERE
tblPhysicianMetrics.division_name = @division_name
AND tblPhysicianMetrics.fy = @fy
AND tblPhysicianMetrics.period = @period
请注意,我的矩阵中的行只是 category_name,所以当 category_name = "FTE" 时我不能隐藏,这不是我真正想要的。我真正需要的是某种说法,“对于 category_name = "FTE" 的行,如果未设置该值,则不要显示该列”。这可能吗?
另一种方法是甚至不获取查询中的那些,但是与矩阵的过滤一样,如果我只是将“AND tblPhysiciansMetrix.category_name = 'FTE'”添加到 WHERE 子句中,我的整个数据集就会减少仅适用于 category_name 为 FTE 的那些记录。
非常感谢任何帮助!
更新:添加了 Matrix 的定义来帮助:
【问题讨论】:
-
AND ((category_name = 'FTE' and employee_id is not null) OR category_name 'FTE') 类型的逻辑是否有效?由于所有列和行标题都模糊了,我猜测这里的部分逻辑。
标签: sql-server reporting-services ssrs-2008-r2