【发布时间】:2016-03-04 20:02:03
【问题描述】:
我正在使用 Visual Studio 2013 和 SQL Server 2008 R2。
一个非常长的表达式 [60-70 IIF's] 位于大约 35 个报告中使用的计算字段中。计算字段表达式匹配来自数据行 [来自 T_SQL] 的值,并为该行指定一个“组名称”。
示例数据:
ID Prod_Num Amount
1 123 15
2 234 20
3 345 25
示例表达式(伪代码):
IIF (Prod_Num = '123', 'Shirts',
IIF Prod_Num = '234', 'Pants',
IIF Prod_Num = '345', 'Socks', 'Other')
问题是添加或修改 Prod_Num 列表时 - 必须在所有报告中进行更改。
将所有这些都集中在一个地方是一种好方法 - 这样当有变化时,只需在那个地方进行。
我没有数据库上的创建表权限,我不知道这是否是一个选项 - 虽然如果我有权限,我会放置所有 Prod_Nums 和类别(衬衫......裤子。 . .) 到一个表中,然后在 SQL 中为报表做这些工作。
我想到了一个 T_SQL 函数,但一些报告使用链接服务器从 Progress DB 中提取数据。 . .而且我不知道这将如何与 SQL Server 函数一起使用??
如果有任何帮助/建议,我将不胜感激。
谢谢!
【问题讨论】:
-
我认为正确的方法是创建一个表来映射 prod_num 和类别。否则,如果您在 T-SQL 或 SSRS 中对映射进行硬编码,那么每次将新产品添加到您的数据库时都很难维护。
-
是的,作为一般规则,我告诉人们,在 SSRS 中尽可能少地执行逻辑,在作为 SSRS 数据集的 SPROC 中执行所有操作。更容易维护。
标签: sql-server reporting-services ssrs-2008 ssrs-2008-r2