明細も出すし、集計も出す…といった際に、
GROUP BY1文で解決すればいいけど、
そうでもない場合や何パターンもある場合に
SQL文をいくつも用意するのは面倒くさい。
基本は明細データを取り出すルーチン1つ用意して、それを加工するようにすると
数値のズレもないし、メンテナンスしやすい。(私は。
処理速度が気にならない場合はこの手を使います。
'----------------------------------------------------
'↓ここで、明細データをゲットする
Dim tbl As DataTable = GetMeisaiDT()
'ここから加工して集計データを作る!
Dim dt As New DataTable
dt.Columns.Add("事業部区分", GetType(Integer))
dt.Columns.Add("生産量", GetType(Integer))
dt.Columns.Add("生産高", GetType(Integer))
Dim item As String(,) = { _
{"A部", "事業部区分 = 'A'"}, _
{"B部", "事業部区分 = 'B'"}, _
{" 他", "事業部区分 = 'Z'"}, _
{"合計", ""}}
For i As Integer = 0 To item.GetLength(0) - 1
Dim dr As DataRow = dt.NewRow
dr.Item("事業部区分") = item(i, 0).ToString
dr.Item("生産量") = tbl.Compute("SUM(通数)", item(i, 1).ToString)
dr.Item("生産高") = tbl.Compute("SUM(生産高)", item(i, 1).ToString)
dt.Rows.Add(dr)
Next
'----------------------------------------------------
0 件のコメント:
コメントを投稿