評判の良いデータを避ける必要がありました。実際、私はクエリを作成しました。
select f.fyeardescr, p.paymnthid, p.paymnthnm
from financialyear f, mnthpll p
where f.status = 'A' and p.fyearcd = f.fyearcd
次のようなデータを表示するデータ
しかし、私は次のように必要でした
oracle.PlzでSQLクエリを実装する方法は私を助けます
分析関数ラグを使用できます
select
CASE
WHEN f.fyeardescr = lag(f.fyeardescr) over (order by f.fyeardescr)
THEN NULL
ELSE f.fyeardescr
END
AS fyeardescr
, p.paymnthid
, p.paymnthnm
from financialyear f, mnthpll p
where f.status = 'A' and p.fyearcd = f.fyearcd
ウィンドウ関数を使用します。
select case when (row_number() over (partition by fyeardescr order by paymnthid)) = 1
then fyeardescr
else null
end fyeardescr
, p.paymnthid, p.paymnthnm
from financialyear f, mnthpll p
where f.status = 'A' and p.fyearcd = f.fyearcd
;
しかし、tboneがすでに指摘しているように、この種のフォーマットは通常、SQLではなく、レポート/表示ツール/レイヤーのタスクです。
Pentaho ReportingサービスまたはJasperレポート(他の多くのレポート)を調べることをお勧めします。レポートの要件は、SQLフォーマットが処理するよりも大幅に複雑になる可能性があります。