动态生成的表怎么插入新表中?

jackqin123 2006-08-25 09:04:35
/**************************************************
create table 加班表(工号 varchar(50),姓名 varchar(50),部门 varchar(50),日期 VARCHAR(50),加班 varchar(50))
insert 加班表 select '001','赵一','M102','2006-7-1','3'
union all select '002','孙二','M103','2006-7-1','2'
union all select '003','李三','M104','2006-7-1','1'
union all select '001','赵一','M102','2006-7-2','4'
union all select '002','孙二','M103','2006-7-2','7'
union all select '003','李三','M104','2006-7-2','6'
****************************************************************************/
CREATE TABLE #T(工号 varchar(50),姓名 varchar(50),部门 varchar(50),S INT,T INT)

--DROP TABLE 加班表

declare @sql varchar(8000)
set @sql = 'select 姓名,部门,工号'
select @sql = @sql + ',max(case 日期 when '''+日期+''' then 加班 end) ['+日期+']'
from (select distinct 日期 from 加班表) as a
select @sql = @sql+' from 加班表 group by 姓名,部门,工号'
exec(@sql)
怎么把动态生成的值插入表#T中
...全文
162 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackqin123 2006-08-26
  • 打赏
  • 举报
回复
主要是增加一个合计列,计算这段时间内的加班合计,上面cosio()不能做到!!!!!!
请高手解答
cosio 2006-08-26
  • 打赏
  • 举报
回复

declare @sql varchar(8000)
set @sql = 'select 姓名,部门,工号'
select @sql = @sql + ',max(case 日期 when '''+日期+''' then 加班 end) ['+日期+']'
from (select distinct 日期 from 加班表) as a
select @sql = @sql+'into ##temp from 加班表 group by 姓名,部门,工号'
exec(@sql)
wisdomone 2006-08-26
  • 打赏
  • 举报
回复
up
jackqin123 2006-08-25
  • 打赏
  • 举报
回复
我的目的只是想生成一个表如下面的结果,只是想最后添加一个合计的列计算2007-7-1~2006-7....的加班合计
姓名 部门 工号 2006-7-1 2006-7-2 ........ 合计
李三 M104 003 1 6 .......
孙二 M103 002 2 7 .......
赵一 M102 001 3 4 ........
请大家帮忙
jackqin123 2006-08-25
  • 打赏
  • 举报
回复
我的目的是根据动态生成的结果插入一个临时表里然后整理,在导入正式表
但是你上面所做的我查询select * from #t 里面没有任何的值呀
九斤半 2006-08-25
  • 打赏
  • 举报
回复


select @sql = @sql+' from 加班表 group by 姓名,部门,工号'

加into #T,跟普通生成临时表是一样的~~~
九斤半 2006-08-25
  • 打赏
  • 举报
回复
CREATE TABLE #T(工号 varchar(50),姓名 varchar(50),部门 varchar(50),S INT,T INT)

--DROP TABLE 加班表

declare @sql varchar(8000)
set @sql = 'select 姓名,部门,工号'
select @sql = @sql + ',max(case 日期 when '''+日期+''' then 加班 end) ['+日期+']'
from (select distinct 日期 from 加班表) as a
select @sql = @sql+' into #T from 加班表 group by 姓名,部门,工号'
exec(@sql)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧