【问题标题】:Change a value in DB table when retrieve检索时更改数据库表中的值
【发布时间】:2016-09-27 06:32:29
【问题描述】:

亲爱的, 我在 Microsoft SQL Server DB 中有如下表:

SysNameFlag | NotificationTime 
1           | 02:55:01         
1           | 07:40:00         
9           | 10:55:06  

每个SysNameFlag 指的是特定的系统名称。 我的问题是它如何能够在 SSRS 中显示数据 至于SysNameFlag中的每个值“1”显示为“Android”等等?

谢谢。

【问题讨论】:

  • 您的SysNameFlag 描述是保存在另一个表中还是需要手动编码?
  • 您可以硬编码,正如 Prdp 回答的那样,但理想情况下,您应该有另一个字典表,将标志解析为描述。然后,您将通过标志将该字典表连接到您的数据表并查找描述。

标签: sql sql-server reporting-services ssrs-2008-r2


【解决方案1】:

使用Case 声明

Case SysNameFlag when 1 then 'Android' 
                 when 9 then 'Another OS' 
          Else 'Default OS'  End

您可以根据需要添加附加条件

【讨论】:

  • 我们真的应该建议硬编码而不是查找吗?
【解决方案2】:

如果您没有用于连接的表以获得正确的值,您可以使用 SSRS 中的表达式,如下所示。

=IIF(Fields!SysNameFlag = 1, "Android", "SomethingElse")

【讨论】:

  • Iff 优化为case,所以同上。但是你确定你应该建议硬编码而不是查找吗?
  • 我确实说过,如果她没有表格来查找值,她可以在报告中使用表达式。感谢您的意见。
【解决方案3】:

假设您没有可用的查找选项,并且如果您想在报告级别实现它,请使用 IIF(如果标志数量较少)或 SWITCH(使其更简单的表达式)。

=SWITCH
(
    Fields!SysNameFlag.Value = 1, "Android", 
    Fields!SysNameFlag.Value = 9, "Non Android",
    TRUE, "Other OS"
)

最后一个条件是除 1 和 9 之外的默认值。

【讨论】:

    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    相关资源
    最近更新 更多