不同列上的不同过滤器

时间:2010-10-21 14:30:46

标签: sql-server reporting-services

我是SSRS的新手,我必须生成销售报告,我们必须在其中应用不同的报告 不同栏目中的条件

我有三列有三个条件

利润列条件中的

是accountID = 13且TypeID = 23

单位列条件中的

是accountID = 8且TypeID = 14

支付列中的

条件是accountID = 78且TypeID = 23

如何在三列上应用过滤器或以任何其他方式执行此操作

请帮帮我

4 个答案:

答案 0 :(得分:0)

在列上放置IIF表达式。

答案 1 :(得分:0)

条件是每次搜索,而不是每列。

你想做的就是说......

select AccountID, TypeID, Profit, Units, Disbursement
from yourTable
[join tables if necessary]
where AccountID in (13, 8, 78)
and   TypeID in (23, 14, 23)

这将为您提供一个结果集,显示标准中每个accountid的accountid,typeid,利润,单位和支出以及标准中的每个typeid。

希望这有帮助。

答案 2 :(得分:0)

与Gio类似,但仅返回您想要的三组组合:

select AccountID, TypeID, Profit, Units, Disbursement
from yourTable
[join tables if necessary]
where (AccountID = 13 and TypeID = 23) or
      (AccountID = 8 and TypeID = 14) or
      (AccountID = 78 and TypeID = 23)

答案 3 :(得分:0)

我看到两种可能的方法来解决你的问题。

更改数据集的查询以仅返回所需的结果。

或使用'表达'

表达式在SSRS中非常有用,

http://technet.microsoft.com/en-us/library/ms157328.aspx

查看常用表达式和示例列表。

要启用表达式,请单击要更改的单元格(我假设您有一个数据网格以显示结果),在属性中,在值下您将看到“表达式”

打开它会打开表达式构建器,您可以在其中构建表达式。

添加过滤器以便IIF字段!AccountID.Value = x。

您可以通过添加用户参数来更进一步,该参数允许报告的用户指定过滤。

无论哪种方式,您决定解决问题(表达式或数据集SQL)我建议阅读表达式,大多数SSRS报告将至少在一个地方使用它们:)