2013-02-08 125 views
1

我正在開發帶有以下數據集(表-1)的SSRS報告。我按帳戶和期間進行分組。我的目標是在一個組中獲得總支出和預算。由於預算數據是按每個組重複的,因此我無法在預算中使用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  ................... 
+0

如果您將每個小組的「費用」總結在一起,那麼您會如何始終顯示每個小組的總費用和總預算? – 2013-02-08 19:52:21

回答

1

如果你真的想重複的預算空試試這個更新命令

請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; 

好運。

1

,如果你有這樣做分組在SQL我會用一個窗口函數。如果你可以在SSRS中做到這一點,只需添加一個'Row Grouping Parent',那就更好了。

對於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