我正在使用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