1

次のデータセットを使用してSSRSレポートを作成しています(表-1)。アカウントと期間でグループ化しています。私の目標は、グループ内の総経費と予算を取得することです。予算データはグループごとに複製されるため、予算にSUM()関数を使用できません。新しいデータセットが次のようになるように重複を削除するにはどうすればよいですか?(表2)アドバイスをお願いします。お時間をいただきありがとうございます。

表1

ID Account Period  Expense Budget
1  100     201301  20      100
2  100     201301  30      100
3  100     201302  10      150
4  100     201302  40      150
5  200     ...................

表-2

ID Account Period  Expense Budget
1  100     201301  20      100
2  100     201301  30      NULL
3  100     201302  10      150
4  100     201302  40      NULL
5  200     ...................
4

2 に答える 2

1

SQLでそのグループ化を行う必要がある場合は、ウィンドウ関数を使用します。SSRSでそれを実行できる場合は、「行グループ化の親」を追加するだけでよいでしょう。

SQLの場合、これを行います。

declare @Temp table ( ID int identity, Account int, period int, expense int, budget int);

insert into @Temp values (100, 201301,  20, 100),(100, 201301,  30, 100),(100, 201302,  10, 150),(100, 201302,  40, 150)

select *
from @Temp

select 
    ID
,   Account
,   Period
,   Expense
,   case when (row_number() over(partition by Budget order by Period) = 1) then Budget end  as Budget-- only shows first occurrence of an order amount ordering by person
from @Temp
于 2013-02-08T20:01:19.283 に答える
1

重複する予算を本当にnullにしたい場合は、この更新コマンドを試してください

sqlfiddleを確認してくださいhttp://sqlfiddle.com/#!3/1e619/11

Update table1 
set budget = null
where id in
(
      select aa.id from
        (
          select id,row_number() 
          over(partition by Budget order by Period) as rno
          from table1
        ) aa
     where rno > 1
);

select * from table1;

幸運を。

于 2013-02-08T21:09:36.353 に答える