0

私のレポートの 1 つは、複数階層の方法でデータを表示する必要があります。

データ構造はOrg>Prog>Eventのようなものです。

次のような生データ ソースがあるとします。

OrgId|ProgId|EventId|PlanValue
1    |A     |Z      |10
1    |A     |Y      |20
2    |A     |Z      |5
3    |A     |F      |2
3    |B     |Z      |3   

Reprot Layout: 最初の列を使用してすべての異なる ID を配置しますが、ID タイプを区別するために異なる色を使用します。

青はOrgidです。赤はProgidです。緑は EventId

そのレポートでは、組織の合計計画値、この組織のプログラムの 1 つの合計計画値、および組織のイベントの 1 つの合計計画値を確認する必要があります。

OrgId/ProgId/EventId|PlanValue
1(blue)             |30
A(red)              |30
Z(green)            |10
Y(green)            |20
________________________
2(blue)             |5
A(red)              |5
Z(green)            |5
________________________
3(blue)             |5
A(red)              |2
F(green)            |2
B(red)              |3
Z(green)            |3

チュートリアルや考えは役に立ちます。

4

1 に答える 1

0

複雑だと考える必要はないと思います。これのトリッキーな部分は、必要に応じてデータを取得することであり、以下のように同様のSQLを使用できます.sqlfiddle

select ORGID,'','', SUM(PLANVALUE) as total from table1
group by ORGID
union all
select ORGID,ProgId,'',  SUM(PLANVALUE) as total from table1
group by ORGID,ProgId
union all
select ORGID,ProgId,EventId,  SUM(PLANVALUE) as total from table1
group by ORGID,ProgId,EventId

dataTable all Entity list のような結果として生データが既にある場合は、LinQ で同じ結果を得ることができます。必要な結果が得られたら、必要に応じて並べ替え、色付けとセパレーターにリピーターをバインドするだけで、ProgId != "" ? などの条件付きステートメントを使用できます。「色:青」:「色:赤」.

于 2013-01-02T15:36:53.237 に答える