1

SQLServer2008を使用しています。SSISで使用されるクエリを実行しています。

私はこのデータを選択して持っています:

  Master_Code   Jan 
    1            4
    2            5

このように最後の行に合計を追加したいと思います。

  Master_Code   Jan 
    1            4
    2            5
    Total        9

SQLからこれを行うのは良い習慣ですか、それともSSISからこの合計を行う必要がありますか?

4

2 に答える 2

2

これは、で簡単に行うことができますUNION ALL。重要なのは、そのmaster_codeフィールドは文字列と同じデータ型でなければならないため、total変換する必要があるということです。

select cast(master_code as varchar(10)) master_code, jan
from yourtable
union all
select 'Total', sum(jan)
from yourtable

SQL FiddlewithDemoを参照してください

または、次を使用できますGROUP BY with ROLLUP

select 
  case 
    when master_code is not null 
    then cast(master_code as varchar(10)) else 'total' end master_code, 
  sum(jan) Jan
from yourtable
group by master_code with rollup

SQL FiddlewithDemoを参照してください

于 2012-12-13T19:28:33.493 に答える
1

intクエリを見ると、データ型は( vsvarcharまたはおそらく)異なっている必要があるように思われるnullため、SQL側にとっては非常に疑わしい選択になります。つまり、クエリの再利用の観点から、特別な値は本当に悪いです。

したがって、理想的には、2つの異なるクエリ(1つは詳細用、もう1つは合計用)を作成します。どちらもSQL Serverで実行され、SSISを使用してデータ変換で結果を結合します。それはおそらく最も効率的で十分にクリーンな方法でしょう。

于 2012-12-13T19:37:59.003 に答える