2012-09-02 53 views
0

基本上,我希望能够在具有聚合函数的iReport上使用参数。 如果你输入“yes”,它会显示大于0的值,如果你输入“no”,它将显示小于0的值。但是,聚合函数首先将所有与id有关的值加起来,那么它会从另一个值中减去结果,结果就是我想要显示的结果。SQL和iReport - Where子句和参数中的聚合函数

我该如何做到这一点?我很无知,因为我不知道如何使用HAVING

+1

你可以发布你的sql查询吗? –

回答

1

我不明白在“我不知道如何与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

+0

HAVING子句无法通过在SELECT子句中分配的别名来引用列。有些SQL产品的确扩展了语法,但SQL Server不在其中。 –

+0

好点。我更新了SQL以便在having子句中不使用别名。 – mdahlman

+0

谢谢,我会尽快尝试 –