Oracle Report(11g)で、amountを含む数値フィールドを選択し、フォーマットマスクに999,999,999,999と記載しています。データは次のように表示されます。
データ1 25,000 データ2 データ3 23,000
次に、空のレコード(つまり、Data2)の前に単純な「0」を表示します。数式列(PL/SQL)を追加するか、フィールドのプロパティの口蓋で「0」を「Value if null」に対して定義して初期化することで試してみました。しかし、それは機能しません。
ただし、フォーマットマスクを削除すると、上記の両方の方法で(式列を追加するか、「値がnullの場合」に対して値を定義することによって)値「0」が表示されます。ただし、これを行うと、金額はフォーマットマスクなしで表示されます(つまり、25000と23000)。
上記のシナリオをどのように達成できますか?フォーマットマスクが必要です。空のレコードの前にもb '0'が必要です。つまり、Oracle Reports 11g-64ビットで次の出力が必要です。
データ1 25,000 データ2 0 データ3 23,000
書式マスクを999,999,999,99 に変更する必要があります。 9形式は、先行ゼロの場合は値を抑制し、0の場合は出力します。
別の解決策ですが、良い解決策ではありません、
_select sum(data1), sum(data2), sum(data3) from
(
select data1, data2, data3 from table1
UNION ALL
select 0, 0, 0 from dual
)
_
これがあなたの問題に役立つことを願っています!この問題を解決するための別の優れた解決策も待っています。
データベースにデータがない場合でも、nvl(...,0)
を記述しても機能しません。専門家が推奨する解決策を教えてください。ありがとう!