0

SQL Server 2012 で SSRS 2012 を使用しています。SQL Server 2012 に、ヘッダーとして次のフィールドを持つ結果セットがあります。

sumDeposits,
sumWithdrawals,
sumFees,
etc

これは、SSRS のデータセットにマップされています。

列ヘッダーを列 1 として、データ行 (結果セットには 1 行しかない) をテーブルの列 2 として持つことができる SSRS テーブルまたはマトリックスが必要です。これは可能ですか?それに苦労してきました。

私が現在行っている方法は、フィールドをデータセットから SSRS ページにドラッグし、その横にテキスト ボックスを配置することです。フィールドの数が増えているので、テーブルが必要です。

4

1 に答える 1

2

列から行へのデータのピボットを解除したいようです。その場合は、SQL でUNPIVOT関数を使用できるはずです。

クエリの基本構造は次のとおりです。

select col, value
from yourtable
unpivot
(
  value
  for col in (sumDeposits, sumWithdrawals, sumFees) -- your columns here
)unpiv;

同じデータ型ではないデータがある場合は、すべての列のデータを同じ型に変換する必要があります。

select col, value
from 
(
  select sumDeposits, 
    cast(sumWithdrawals as numeric(10, 2)) sumWithdrawals, 
    sumFees
  from yourtable
) d
unpivot
(
  value
  for col in (sumDeposits, sumWithdrawals, sumFees)
) unpiv;

このタイプのクエリはUNION ALL、同じテーブルへの複数の呼び出しで を使用する場合とまったく同じです。

select 'sumDeposits' col, sumDeposits as value
from yourtable
union all
select 'sumWithdrawals' col, sumWithdrawals as value
from yourtable
union all
select 'sumFees' col, sumFees as value
from yourtable
于 2013-04-14T11:04:39.573 に答える