2

我有一份报告需要显示来自不同位置或所有位置的会计数据。

表销售:

PartId    Rev     LocId
1         $10     1
2         $2      1
3         $5      2

可以说查询是这样的基本的东西来获得所有收入:

SELECT SUM(rev) FROM Table_sales

如果我希望能够将报告限制在特定位置,则必须将其更改为:

SELECT SUM(Rev) FROM Table_sales WHERE LocId = @param

但是,如果我这样做了,我将如何在没有多个查询的情况下获得所有位置?

仅供参考,SQL 2008 Filter 选项似乎不适用于我正在使用的实际查询,因为实际查询使用分组功能。

SSRS 2008 DataSet 查询也可以是表达式,但我似乎无法让它工作。

4

2 回答 2

3

我不确定您在 SSRS 2008 中提到的过滤器选项或数据集查询,但在一些旧版本的 SSRS 中,我见过这样的东西:

SELECT SUM(Rev) FROM Table_sales WHERE LocId = @param or 'All' = @param

我怀疑这是执行此操作的最有效方法,但它允许您有 1 个查询,您可以在其中选择所有结果(通过将术语“全部”作为参数传递)或只选择您想要的 LocId(通过传递适当的 LocId 作为参数)。

于 2009-05-21T19:10:22.860 回答
0

也许你可以使用它:

SELECT SUM(Rev) FROM Table_sales WHERE LocId IN (@param)
于 2009-05-22T08:34:41.650 回答