У меня есть две таблицы: авуары и транзакции
Данные о владениях выглядят так:
06/30/2009, A, 100
06/30/2009, B, 1200
06/30/2009, C, 100
06/30/2009, D, 100
Данные транзакций выглядят так:
A, 06/05/2009, 100
B, 06/02/2009, 400
B, 06/13/2009, 400
B, 06/28/2009, 400
C, 06/17/2009, 100
D, 06/30/2009, 100
Что мне нужно сделать, так это просмотреть таблицу авуаров и выполнить расчет транзакций, в которых они существуют по отдельности.
Я могу поместить все транзакции во временную таблицу и использовать цикл WHILE для их обработки.
declare @count int,
@loopcount int
declare @tblTransactions TABLE
(
ID int identity(1,1),
trtype varchar(10),
trdate datetime,
trvalue int
)
insert into @tblTransactions
select * from Transactions
select @count=@@rowcount
set @loopcount=1
WHILE @loopcount<=count
BEGIN
select * from @tblTransactions where ID=@loopcount
set @loopcount=@loopcount+1
END
Это все очень хорошо, но вот проблема: там, где есть несколько транзакций для одного и того же холдинга, столбец trtype
, мне нужно сделать промежуточную сумму 'trvalue
'.
Не уверен, как это сделать, не делая 2-й цикл.
Помощь