从数据集中删除重复值

从数据集中删除重复值

问题描述:

我正在开发带有以下数据集(表-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

如果你真的想重复的预算空试试这个更新命令

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

好运。

,如果你有这样做分组在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