0

サブクエリによって形成されたテーブルから列の合計をフェッチするクエリがあります。

行の何か:

select temp.mySum as MySum from (select sum(myColumn) from mySchema.myTable) temp;

ただし、temp.mySum が null の場合に MySum を null にしたくありません。代わりに、temp.mySum が null の場合、MySum に文字列 'value not available' を持たせたいと思います。

したがって、以下の方法で合体を使用しようとしました。

select coalesce(temp.mySum, 'value not available') as MySum from (select sum(myColumn) from mySchema.myTable) temp;

ただし、上記のクエリはエラー メッセージをスローしています。

Message: The data type, length or value of argument "2" of routine "SYSIBM.COALESCE" is incorrect.

このメッセージは、以下の最初の回答で述べたように、coalesce 関数の引数 1 と 2 の間のデータ型の非互換性が原因です。

ただし、Jasper でこのクエリを直接使用して、値を Excel シート レポートに送信しています。

hashmap.put("myQuery", this.myQuery);
JasperReport jasperReportOne = JasperCompileManager.compileReport(this.reportJRXML);
JasperPrint jasperPrintBranchCd = JasperFillManager.fillReport(jasperReportOne , hashmap, con);
jprintList.add(jasperPrintOne);
JRXlsExporter exporterXLS = new JRXlsExporter();
exporterXLS.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jprintList);
exporterXLS.exportReport();

Excelシートでは、値が利用できない場合、値をnullとして取得しています。レポートに「使用できない値」を表示したい。

これはどのように達成できますか?

読んでくれてありがとう!

4

1 に答える 1