首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

参数的追加

2012-12-17 
参数的累加!create table test1--测试数据(name varchar(10), [201201] int, [201202] int, [201203] int,

参数的累加!

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嵌套循环就实现了拉。

试试!
[其他解释]
你先写吧,写不出我再帮你写
[其他解释]
引用:
你先写吧,写不出我再帮你写


好的,嘻嘻
[其他解释]


declare @i int 
 declare @str varchar(50)
declare @addstr varchar(200)
declare @sql varchar(500)
set @i=1
set @addstr = ''
while @i<4
begin 
 set @str ='m20120'+ convert(varchar(10),@i)
  if @addstr = ''
  set @addstr =  'm20120'+convert(varchar(10),@i)
  else
  set @addstr = @addstr + ' + '  + 'm20120'+convert(varchar(10),@i)
  
set @sql= ' update test2 set '+ @str+'=(select SUM('+@addstr+') from test1)'
print (@sql)
                          set @i=@i+1
                         
                          end 


是自己想得太复杂了,呵呵!刚好写出,愉快落班!
[其他解释]
引用:
最好改成CTE而不要用这种循环。
想不出来呢!对with 的用法不是很熟悉,完全没有那思路,
黄老师来点提示!

热点排行