このようなテーブルが2つあります
支払いID、支払い日でソートされたtable1:
paymentid paydate amount
1 20120101 100
1 20120101 150
1 20120101 150
2 20120115 100
2 20120115 100
...
支払いID、支払い日でソートされたtable2:
paymentid paydate pay1 pay2 pay3....base on the position from table1...up to pay20
1 20120101 null null null
2 20120115 null null null
...
更新後、table2は次のようになります
1 20120101 100 100 150 null.....
2 20120115 100 100 null null null.....
これまでに考えられる解決策は次のとおりです。
1、table1 をループするための一時テーブル
2、カーソル...現在の解決策:
declare @paymentid int
declare @paydate char(10)
declare @amount money
declare @count int
declare @saveid int
declare @savedate char(10)
delcare cur cursor for select paymentid, paydate, amount from table1 order by paymentid, paydate
open cur
fetch next from cur into @paymentid,@paydate,@amount
while @@fetch_status = 0
if @saveid <> @paymentid or @savedate <> @paydate
set @count = 1
set @saveid = @paymentid
set @savedate = @paydate
else set @count = @count + 1
if @count = 1
update table2
set pay1 = @amount
where paymentid = @paymentid and paydate = @paydate
if @count = 2
update table2
set pay2 = @amount
...
fetch next
...
任意の提案をいただければ幸いです。