很简单,所有列名都不写就行了。
insert into #xsmx1
select customer,month1_quantity,month2_quantity,month3_quantity,
avg_quantity,wait_quantity from #xsmx
如果非要写列名,用拼接sql的方法吧,
exec('insert into #xsmx1 (客户名称,['+@month1+'],['+@month2+'],本月已发,月平均用量,本月待发量) select customer,month1_quantity,month2_quantity,month3_quantity,
avg_quantity,wait_quantity from #xsmx')
需要写存储过程拼sql。
create proc P
@YearMonth varchar(6) --年月
as
begin
Declare @SDate DateTime-本月第一天
Declare @EDate DateTime--本月最后一天
Declare @SumDate int --总天数
Declare @i int
Set @SDate=CAST(@YearMonth+'01' AS Datetime)
--在本月第一天的基础上加1个月 然后减一天 就是本月最后一天
Set @EDate=DateAdd(M,1,@SDate)-1
--计算出差一天数
Set @SumDate=DATEDIFF(D,@SDate,@EDate)
set @i = 0
while @i<@SumDate
begin
--凑sql 我就不写详细了 列名就是 @SDate+i
end
end
以上就是关于用SQL向以变量定义列名的表中插入数据时,怎么取得列名全部的内容,包括:用SQL向以变量定义列名的表中插入数据时,怎么取得列名、sql 获取某一月份内所有日期 作为列名、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)