2016-06-14 9 views
0

SQLデータベースには次の形式の財務データがあり、残念ながらこのフォーマットで生きなければなりません。BIRT Report Designer - 1つのテーブルに格納されている実際のデータと予算データを列に分割し、分散を追加します。

enter image description here

しかし私は、BIRTのレポートで、次のレイアウトにそれを得るのに苦労されています。

enter image description here

私は対策として、寸法やバランスなどのパッケージ、フローおよびアカウントでのデータキューブを作成しようとしたが、それぞれに互いに隣のグループの実際のPERと実際のYTDと予算PERとYTDは、次のようしていますその他のものは私が必要とするものではありません。

私が持っていたもう1つのアイデアは、計算された4つの新しい列を作成することでした。最初の列は実際の列と1つの列の場合にのみ値を持ち、次の列は実際とytdなどでしたが、 IF関数が計算列で機能しています。

どのようなオプションがありますか?誰かがこのデータ構造から上記のレイアウトを作成する最善の方法について私に指摘することができますか?

ありがとうございます。

答えて

1

私はバックエンドでどのDBを使用しているのかよくわかりませんが、これはSQL Serverでどのようにしたのですか。

重要なビットはデータセットで発生します。ここに私のデータセットのためのSQLは次のとおりです。

SELECT 
    Account, 
    Package, 
    Flow, 
    Balance 
FROM data 

UNION 

SELECT DISTINCT 
    Account, 
    'VARIANCE', 
    Flow, 
    (SELECT COALESCE(SUM(Balance),0) FROM data WHERE Account = d.Account AND Flow = d.Flow AND Package = 'ACTUAL') - (SELECT COALESCE(SUM(Balance), 0) FROM data WHERE Account = d.Account AND Flow = d.Flow AND Package = 'BUD') as Balance 
FROM data d 

これは私のようなテーブル与える:

Table showing the data from the previous SQL statement based on the data from the original question

をその後、私は

  • グループ/寸法 が含まれているデータキューブを作成しました
    • アカウント
    • フロー
    • パッケージ
  • 概要フィールド/対策
    • バランス

その後、私はそのデータキューブ

Showing a BIRT Report CrossTab Report based on the DataCube described before.

に基づいたクロスタブレポートを作成しました

そして、これが結果を生成します。

Shows the published report based on the previous CrossTab

がうまくいけば、このことができます。

+0

こんにちは、多くのおかげで、これは乳首を動作させる!私はSQLも使用しており、データセットに追加することは考えていません。 – JamesH

関連する問題