读书人

SQL根月份更新,该怎么处理

发布时间: 2012-01-26 19:40:46 作者: rapoo

SQL根月份更新
表A如下:
-------------------------
ID cost
C4096A
Q2612A

表B如下:
------------------------
ID 1月 2月
C4096A 310 320
Q2612A 190 200

如下:
如何更新A表里的cost字段,件要根日的月份更新。
例子:
假如月是一月的候,更新果如下:
ID cost
C4096A 310
Q2612A 190

[解决办法]
用动态语句吧
--建立测试数据
create table b(id varchar(10),[1月] int,[2月] int)
insert into b select 'C4096A ',310,320
union all select 'Q2612A ',190,200

create table a(id varchar(10),cost int)
insert a select 'C4096A ',0
union all select 'Q2612A ',0

--根据当前月份更新数据
declare @colname varchar(100)
set @colname=col_name(OBJECT_ID( 'b '),datepart(m,getdate())+1)
exec( 'update a set cost=c.cc from a,(select id,cc=[ '+@colname+ '] from b) c where a.id=c.id ')

--删除测试数据
drop table a,b

读书人网 >SQL Server

热点推荐