2010-10-21 116 views
1

我是新来的SSRS和我产生中,我们有不同列不同的过滤器

我有了三个条件

利润三列应用不同 条件销售报告列条件是帐户ID = 13和TYPEID = 23

在单位列中的条件是帐户ID = 8和TYPEID = 14

在支付条件列是

=帐户ID 78和TYPEID = 23

如何在三列应用过滤器或任何其他方式做到这一点

请帮我

回答

0

把一个IIF表达式在列。

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,并在每个typeid的ACCOUNTID,typeid的利润,单位和支出标准。

希望这会有所帮助。

+0

,这除了OP所需的三个组合之外,还将返回3个其他组合值。 – 2010-10-22 10:00:47

0

类似吉奥,但只返回三套组合,你会想:

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) 
0

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

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

或使用“表达式”

表达式是非常有用的SSRS,

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

有共同的表达和示例清单一看那里。

要启用一个表达式单击要更改(我假定你有一个DataGrid,以显示结果)和属性中的单元格,下值,你会看到“表达”

开幕,这将带来建立表达式构建器,在其中构建表达式。

添加过滤器,以便IIF领域!AccountID.Value = X。

您可以进一步添加一个用户参数,以便报告的用户指定过滤。

你决定来解决我建议你在表达阅读了这个问题(表达式或数据集SQL)

无论哪种方式,大部分SSRS的报告,它代表将使用它们至少在一个地方:)