这里有一些代码可以帮助您入门。基本上,它会创建一个包含您需要的字段的表,您可以删除它并根据需要重新创建它。您需要完成将其余字段添加到动态 SQL 部分 (@CreateTable),然后您需要构建一些插入和更新查询来填充它。我会使用一些动态 sql,就像我用来创建表的那样来执行这些操作,以便您从变量中获取字段名称。
DECLARE @Month1 VARCHAR(15),
@Month2 VARCHAR(15),
@Month3 VARCHAR(15),
@Month4 VARCHAR(15),
@Month5 VARCHAR(15),
@Month6 VARCHAR(15),
@Year VARCHAR(4)
SELECT @Year = Year(GetDate())
SELECT @Month1 = LEFT(DateName(mm,DateAdd(mm,-6,GetDate())),3) + '_' + @Year,
@Month2 = LEFT(DateName(mm,DateAdd(mm,-5,GetDate())),3) + '_' + @Year,
@Month3 = LEFT(DateName(mm,DateAdd(mm,-4,GetDate())),3) + '_' + @Year,
@Month4 = LEFT(DateName(mm,DateAdd(mm,-3,GetDate())),3) + '_' + @Year,
@Month5 = LEFT(DateName(mm,DateAdd(mm,-2,GetDate())),3) + '_' + @Year,
@Month6 = LEFT(DateName(mm,DateAdd(mm,-1,GetDate())),3) + '_' + @Year
PRINT @Month1
PRINT @Month2
PRINT @Month3
PRINT @Month4
PRINT @Month5
PRINT @Month6
DECLARE @CreateTable VARCHAR(MAX)
SELECT @CreateTable = 'CREATE TABLE tblTESTING (
CODE VARCHAR(10),
MODULE VARCHAR(10),
SO_NUM_' + @Month1 + ' VARCHAR(10),
LABOR_HOURS_' + @Month1 + ' VARCHAR(10),
LABOR_COST_' + @Month1 + ' VARCHAR(10)
)'
PRINT ''
PRINT @CreateTable
--DROP TABLE tblTesting
EXECUTE(@CreateTable)