【问题标题】:BIRT: Using Parameter in "group by" part of a SELECTBIRT:在 SELECT 的“分组依据”部分中使用参数
【发布时间】:2012-06-21 22:10:11
【问题描述】:

我被这个问题弄疯了:

我有一些 Oracle SQL 报告可以用 BIRT 重新设计它们。第一件事效果很好,但现在报告中有一个使用 GROUP BY 的 SELECT 并且出于任何原因它在 BIRT 中不起作用......

总是出现“GROUP BY 子句没有 GROUP BY 表达式”之类的错误。

问题似乎是我在 GROUP BY 部分中使用的参数,因为当我删除参数并直接在查询中传递任何值时,它正在工作。

有人知道如何解决这个问题吗?

问候

【问题讨论】:

标签: birt


【解决方案1】:

问题似乎是我必须添加两次相同的参数(一个 ? 用于 select,一个用于 group by)并且 BIRT 不会替换 ?使用它的值但使用 SQL 参数,当它们指向同一个目标时它们也不同。或类似的东西。使用链接主题 (stackoverflow.com/questions/6059412/...) 中解释的“临时表”对我有用!

【讨论】:

    【解决方案2】:

    我建议保留没有 GROUP BY 表达式的 SQL,并在显示数据的表格或图表上进行分组。当您将分组添加到表中时,您应该能够按表达式定义分组,如下所示:

    row[params["MY_PARAMETER"].value]
    

    将参数传递给 Oracle group by 会很困难,因为分组列是唯一可以直接出现在 SELECT 子句中的列(任何不在 group by 中的都只能出现在 group 函数中,例如 SUM、MIN 、MAX、COUNT 等),因此您需要动态修改 SQL 以添加/删除 SELECT 子句中的列。这是可能的,但很难。

    【讨论】:

    • TY,但选择不是问题。当我在 SQL Developer 中触发它时,它运行良好。它只是在 BIRT 和“?”中不起作用。参数。
    猜你喜欢
    • 1970-01-01
    • 2022-12-20
    • 2011-10-14
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多