Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Суммирование по произвольным интервалам  [new]
APM
Member

Откуда: Н.Тагил
Сообщений: 985
Есть две таблицы:

первая (amount):

  amountid      date         amount
1 01.01.2011 100
2 02.01.2011 50
3 04.01.2011 200
4 10.01.2011 20
5 11.01.2011 5
вторая (period):
   periodid date 
1 01.01.2011
2 03.01.2011
3 05.01.2011

Нужно сгруппировать первую по интервалам второй и вывести sum (amount):

Для этого примера, ответ такой:

      01.01.2011    150
03.01.2011 200
05.01.2011 25


Помогите с запросом, пожалуйста.
19 окт 11, 11:57    [11464916]     Ответить | Цитировать Сообщить модератору
 Re: Суммирование по произвольным интервалам  [new]
Orland
Member

Откуда: Ростов
Сообщений: 71
declare @t table
(
amountid int,
date smalldatetime,
amount int
)

declare @p table
(
periodid int,
date smalldatetime
)

Insert into  @t
Select 1,'2011-01-01', 100
union all
Select 2,'2011-01-02', 50
union all
Select 3,'2011-01-04', 200
union all
Select 4,'2011-01-10', 20
union all
Select 5,'2011-01-11', 5

Insert into @p
Select 1, '2011-01-01'
union all
Select 2, '2011-01-03'
union all
Select 3, '2011-01-05'
	
	Select p.date, sum(t.amount) from 
	@P p
	inner join
	@t t on
		p.date <= t.Date
	where
		not exists
			( select top 1 1 from @p pp where pp.Date > p.Date and pp.Date < t.Date)
	group by p.Date
	
	

19 окт 11, 12:07    [11465024]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить