从数据集中删除重复值
问题描述:
我正在开发带有以下数据集(表-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 ...................
答
如果你真的想重复的预算空试试这个更新命令
请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
如果您将每个小组的“费用”总结在一起,那么您会如何始终显示每个小组的总费用和总预算? – 2013-02-08 19:52:21