2013-02-08 2 views
1

Я разрабатываю отчет SSRS со следующим набором данных (Таблица 1). Я группирую счет и период. Моя цель - получить общий расход и бюджет в пределах группы. Поскольку данные бюджета дублируются для каждой группы, я не могу использовать функцию СУММ() для бюджета. Как удалить дубликаты, чтобы новый набор данных выглядел так? (Таблица 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

Что делать, если вы вместо этого суммировали 'Расход' для каждой группы ... так что тогда вы последовательно показывали общие расходы и общий бюджет для каждой группы? –

ответ

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, просто добавьте «Родитель Группировки строк», было бы лучше.

Для 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 
Смежные вопросы