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