参数的累加!
create table test1
--测试数据
(name varchar(10),
[201201] int,
[201202] int,
[201203] int,)
create table test2
(name varchar(10),
[201201] int,
[201202] int,
[201203] int,)
select * from dbo.test1
select * from dbo.test2
/*
name 201201 201202 201203
---------- ----------- ----------- -----------
Income 1 2 3
(1 row(s) affected)
name 201201 201202 201203
---------- ----------- ----------- -----------
income_tt 1 3 6
(1 row(s) affected)
*/
要的效果就是把text1的数据插入text2,text2.201201=text1.201201
text2.201202=text1.201201+text1.201202,如些类推!
当然不是用
update text1 set 201202=(select SUM(201201+Mtd201202)
的方法,因为text1的字段也是参数来的,就是不知道怎样把之前的参数保留下来,用临时表?
麻烦大家了,谢谢!
------最佳解决方案-------------------- 最好改成CTE而不要用这种循环。
------其他解决方案-------------------- 有点复杂,我想了个思路不知道可以不。
你可以用动态语句列转行,这样会比较好处理。处理完再列转行。
------其他解决方案-------------------- 动态语句.....
------其他解决方案-------------------- 学习学习学习学习学习
------其他解决方案-------------------- declare @str varchar(50)
declare @addstr varchar(200)
set @str=1
while @str<12
begin
set @addstr=.....
update test2 set @str=(select SUM(@addstr) from test1)
set @str=@str+1
........
这个该怎样定义,还是这种 方法走不通
------其他解决方案-------------------- 是表达不清吗?上面的是乱写的,就是比喻那样写
------其他解决方案-------------------- 这个用cte嵌套循环就实现了拉。
------其他解决方案-------------------- 引用: 有点复杂,我想了个思路不知道可以不。
你可以用动态语句列转行,这样会比较好处理。处理完再列转行。
意思是先把text1表先转成死吗?这样很大动作呢,转成列差不多有100多列呢!复杂了点
------其他解决方案-------------------- 引用: 这个用cte嵌套循环就实现了拉。
试试!
------其他解决方案-------------------- 你先写吧,写不出我再帮你写
------其他解决方案-------------------- 引用: 你先写吧,写不出我再帮你写