【问题标题】:OBIEE - Change pivot table row values based on promptOBIEE - 根据提示更改数据透视表行值
【发布时间】:2014-08-28 13:17:32
【问题描述】:

我目前有一组 12 个数据透视表,可以根据提示显示。因此,用户只需单击“查看方式:”下拉菜单并选择要查看的表格。这是通过简单的“虚拟表”和表示变量来实现的。

我的问题:我可以设置一个类似的提示来更改我的数据透视表中的行值吗? 例如,我的行值当前是每年(12、24、36,...)。我想为用户提供按季度(3、6、9、...)和每月(1、2、3、...)查看数据的选项。

我可以添加第二个“查看方式:”下拉列表,以便用户可以同时选择表和显示表的行值?

【问题讨论】:

    标签: pivot-table prompt obiee


    【解决方案1】:

    我假设您有一个时期维度,其中包含年、季度和月的列。如果没有,您也许可以使用它的变体。

    如果是这样,您可以使用索引 col 函数。要进行设置:

    您将有一个变量提示,使用选项 [每年、每季度、每月] 设置一个演示变量

    在您的答案中,您将有一个句点列,将列公式更改为使用 indexcol 函数。它看起来像:

    INDEXCOL(CASE '@{myPresentationVariable}' WHEN 'annual' THEN 0 WHEN 'quarterly' THEN 1 WHEN 'monthly' THEN 2 END, period.year, period.quarter, period.month)
    

    【讨论】:

    • 我实际上有一个 'development_age' 列,其值为 1,2,3,...,12,15,18,...168。第一年递增 1,之后递增 3。我正在尝试根据表示变量过滤此列。谢天谢地,你的回答让我走了 90% 的路。我现在有这个:CASE '@{time_period}' WHEN 'Year' THEN 12 WHEN 'Quarter' THEN 3 WHEN 'Month' THEN 1 END。但是我想要的是这样的:CASE '@{time_period}' WHEN 'Year' THEN (12,24,36,...,168) WHEN 'Quarter' THEN (3,6,9,...,48) WHEN 'Month' THEN (1,2,3,...,12) END。这似乎是我搞砸的基本 SQL。
    • @MattDionis 在这种情况下,您可以使用上述的变体(可能使用 SQL 过滤器)过滤您的分析吗? 0 = CASE '@{time_period}' WHEN 'Year' THEN MOD("development_age", 12) WHEN 'Quarter' THEN MOD("development_age", 3) WHEN 'Month' THEN 0 END
    【解决方案2】:

    我让这件事变得比需要的困难得多。解决方案是为我引用的不同值桶创建 Groups ((1,2,3,...), (3,6,9,...), (12, 24,36,...))。然后只需将相应的列过滤器设置为 Is Prompted 并将新创建的 Groups 作为 Choices 添加到您的 prompt's choice list

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多