【问题标题】:Data Manupulation Issue in cognoscognos 中的数据操作问题
【发布时间】:2013-01-26 04:16:41
【问题描述】:

一列包含以下case语句,当数据呈现负十进制值时出错。

正确的值= -0.9 但它显示为 .-9 我尝试通过更改数据格式等进行操作,但没有得到正确的结果

我想以某种方式处理数据并将其显示为 -0.9

情况下 cast([关系层].[数量],varchar(40)) '-2000.00' 然后 cast([关系层].[Amount],varchar(40)) 否则“不可用” 结束

【问题讨论】:

    标签: sql db2 cognos cognos-8


    【解决方案1】:

    我相信您面临演员转换问题。我看到了几个解决方案。在您进一步阅读之前,请仔细检查报告中列的格式设置......似乎您应用了一种格式,因为它是一个文本字段,因为它是一个文本字段。

    没有顺序

    1. 看起来您正在尝试转换为 varchar,以便您可以使用“不可用”。您可能想尝试不同的方法。更改您的 case 表达式以进行纯数学运算,而无需任何 varchar 转换。而且我猜您可能正在报告工作室中显示,因此在报告工作室中并使用报告工作室,您可以设置一个条件变量/样式,在显示该值时具有 if -2000 或任何测试条件将其设置为“不可用”

    2. 您可以在查询主题中创建两列...一列有您的案例语句,但仅在“不可用”时填充,另一列是纯数字并且仅在它是实际值时填充。在报告中,您还可以在列中使用变量/条件样式来显示一列或另一列,基于测试不可用...如果不可用则显示不可用列,否则显示数字列。

    3. 拥有一个返回正确值的纯数字 case 表达式。但在 case 表达式中让它返回 null 而不是“不可用”。在报告中,我相信有一种直接的方法可以在 null 时默认一个值,或者您可以再次使用条件样式/变量来为您执行此操作。

    条件样式/变量对于在显示器上进行疯狂的替换/评估非常方便,它们可以逐行操作。

    【讨论】:

    • 感谢蒂姆的回复。正如您提到的,我正在尝试转换为 varchar,以便可以使用“不可用”,但是我有 10 个这样的列,第二种方法不可行,我尝试乘以 1.0,所以它会以十进制返回,但是它也不允许乘以它的 varchar。
    • 我确定 #1 或 #2 会起作用。不确定您使用的是哪个版本的 Cognos...但它们现在在列值上具有默认属性,因此应该很容易默认当它为空时,一个数字列“不可用”......如果它是旧版本,条件变量/样式将毫无疑问地工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2021-12-23
    • 2021-06-09
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2021-10-06
    相关资源
    最近更新 更多