0

ビジネス オブジェクト webi で。

以下では、3 月の ABC の派生列にデータがありません。

Jan     Feb Apr May Jun...

A 1 3 3 4 5... B 2 0 2 2 2... C 1 3 5 1 1...

として持ちたい

Jan     Feb Mar Apr May Jun...

A 1 3 0 3 4 5... B 2 0 0 2 2 2... C 1 3 0 5 1 1...

どうすればそれができるのか、誰でも私を助けてくれませんか...

よろしくお願いします。

4

1 に答える 1

1

現在のバージョンでは、そこにないデータを表示することはできません。これは、将来のバージョンでは問題にならない可能性があります。

日付関連のデータの場合、キー期間を強制的に表示してから、データをそれにLOJすることができます。静的テーブルを作成したり、SQLコマンドを記述したりできるかどうかに依存するため、最も単純ではありません。

データベースに静的な日付テーブルを配置できる場合は、それが最も簡単な方法である可能性があります。毎月1日のエントリが1つあるテーブルで十分な場合があります。このテーブルからデータへのリンクを追加します-静的テーブルをLEFTテーブルとして使用すると、データが存在しない月であっても、月の列が含まれます。正しいリンクを見つけるのは問題かもしれません。

が行う最も簡単な方法は、SQLコマンドを使用してレポートをフィードし、CTE(共通テーブル要素)、シードテーブル、および日付計算を使用して駆動テーブルの完全な日付スパンを取得し、次に実際の日付計算を使用することです。結合を照会します。そこから、新しい日付要素として使用する追加の(派生および駆動)列が作成されます。

初めて設定するのは面倒ですが、コードを入手して、必要に応じて再利用できます。

私は次のようなことをします:

With
MOS as (  -- CTE for # of months I plan on covering - NEGATIVELY from today's date
  Select -12 as Offset from Dual  UNION ALL
  Select -11           from Dual  UNION ALL
  Select -10           from Dual  UNION ALL
  Select  -9           from Dual  UNION ALL
  Select  -8           from Dual  UNION ALL
  Select  -7           from Dual  UNION ALL
  Select  -6           from Dual  UNION ALL
  Select  -5           from Dual  UNION ALL
  Select  -4           from Dual  UNION ALL
  Select  -3           from Dual  UNION ALL
  Select  -2           from Dual  UNION ALL
  Select  -1           from Dual  
  )
, ChartDates as (  -- gives the 1st day of the month, for the 'n' months above
  Select TRUNC( ADD_MONTHS(sysdate, MOS.offset ), 'MONTH' ) ChartMonth 
  from MOS
  )
-- Join to the real query
Select  CD.ChartMonth, YQ.*
from ChartDates CD
       Left Outer Join (YourQuery) YQ
          on CD.ChartMonth = YQ.QueryMonth

結合条件として使用するには、データから同等の「月の1日」を生成する方法が必要になります。

そこから、すべてをSQLとして貼り付け、新しいフィールドChartMonthを運転日として使用します。

于 2012-06-13T00:04:47.203 に答える