我正在使用SpagoBI,并试图用可选参数创建报告。我有beforeOpen()脚本的问题。这是查询。BIRT报告可选参数脚本
select C."CUSTOMERNAME", C."CITY", D."YEAR", P."NAME"
from "CUSTOMER" C, "DAY" D, "PRODUCT" P, "TRANSACTIONS" T
where C."CUSTOMERID" = T."CUSTOMERID"
and D."DAYID" = T."DAYID"
and P."PRODUCTID" = T."PRODUCTID"
and C."REGION" in (?)
和脚本
if (params["cityparam"].value != null){
this.queryText = this.queryText + "and C.\"CITY\" in (?,'" +params["cityparam"].value + "')";
}
else{
var str = reportContext.getParameterValue("regionparam");
q3 = this.queryText + "and C.\"CITY\" in (?,(select \"CUSTOMER\".\"CITY\" from \"CUSTOMER\" where \"CUSTOMER\".\"REGION\" in ('"+ str +"')))";
this.queryText =q3;
}
我有2个参数,regionparam和cityparam第二个是可选的。我试图用这种方式修改查询,当cityparam没有设置时,我将C.“CITY”与所选区域中的所有可能值进行比较。生成的查询在我的PGadmin中工作。但是SpagoBI工作室存在问题。它说:
子查询返回的值超过1。这是不允许的
是否有任何BIRT主?我会很乐意提供帮助。谢谢。
哇。太简单。谢谢你的答案。 – LucasPG