基本上,我希望能够在具有聚合函数的iReport上使用参数。 如果你输入“yes”,它会显示大于0的值,如果你输入“no”,它将显示小于0的值。但是,聚合函数首先将所有与id有关的值加起来,那么它会从另一个值中减去结果,结果就是我想要显示的结果。SQL和iReport - Where子句和参数中的聚合函数
我该如何做到这一点?我很无知,因为我不知道如何使用HAVING。
基本上,我希望能够在具有聚合函数的iReport上使用参数。 如果你输入“yes”,它会显示大于0的值,如果你输入“no”,它将显示小于0的值。但是,聚合函数首先将所有与id有关的值加起来,那么它会从另一个值中减去结果,结果就是我想要显示的结果。SQL和iReport - Where子句和参数中的聚合函数
我该如何做到这一点?我很无知,因为我不知道如何使用HAVING。
我不明白在“我不知道如何与HAVING一起使用”中指的是“它”。有些SQL会让问题更加清晰。但我猜你正在寻找这样的:
SELECT id, sum(values) as the_agg
FROM table1
GROUP BY id
HAVING sum(values) $P!{BiggerOrSmaller} 0
该参数的默认值BiggerOrSmaller应该是这样的:
$P{MyParam}.equals("yes") ? ">" : "<"
这里假设你有一个名为parmeter其MyParam
可以采取值“是”。根据该值,它适当地设置参数BiggerOrSmaller
。
HAVING子句无法通过在SELECT子句中分配的别名来引用列。有些SQL产品的确扩展了语法,但SQL Server不在其中。 –
好点。我更新了SQL以便在having子句中不使用别名。 – mdahlman
谢谢,我会尽快尝试 –
你可以发布你的sql查询吗? –