SpagoBI を使用しており、オプションのパラメーターを使用してレポートを作成しようとしています。beforeOpen() スクリプトに問題があります。これがクエリです。
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;
}
regionparam と cityparam の 2 つのパラメーターがあり、2 番目のパラメーターはオプションです。この方法でクエリを変更しようとしています。cityparam が設定されていない場合、C."CITY" を選択した地域で可能なすべての値と比較しています。生成されたクエリは私の PGadmin で機能します。しかし、SpagoBI スタジオには問題があります。それは言う:
サブクエリが複数の値を返しました。これは許可されていません
BIRTマスターはありますか?お役に立てれば幸いです。ありがとう。