sql语句如何实现将已经搜索到的Recordset,横向插入到令一个临时的表里.然后建一个job每隔两个小时导出成csv文件,文件名为yyyymmddhh.csv. 如:2007041421.csvselect * from table1得到的记录集为.
Name Course Grade刘三 maths 45
刘三 Chinese 39
刘三 English 56
王五 maths 77
王五 Chinese 89
王五 English 48插入到另一张临时表后为:Name Maths Chinese English刘三 45 39 56
王五 77 89 48整个如何用语句来实现,关键是临时表的字段如何生成等等.
接着又如何用job来导出呢?非常紧急,如能解决,可以另外加分----
Name Course Grade刘三 maths 45
刘三 Chinese 39
刘三 English 56
王五 maths 77
王五 Chinese 89
王五 English 48插入到另一张临时表后为:Name Maths Chinese English刘三 45 39 56
王五 77 89 48整个如何用语句来实现,关键是临时表的字段如何生成等等.
接着又如何用job来导出呢?非常紧急,如能解决,可以另外加分----
解决方案 »
- 求助,如何在一张表的每个字段前都加上‘0’?
- 大虾过来指点下,ADO错误(COM数据类型转换错误)
- sqlserver将int类型转为double类型的问题
- 求很难的sql语句
- SQL Server的事件探查器,能不能改变生成的临时文件的位置呢?
- 设置sql代理定时执行计划的alert那里改如何设置
- 如何給內容相同的行加上序號
- 问个2000下的题外话!有兴趣的朋友请指点!^_^
- 急问题:请教一条更新语句,谢谢!!!
- sql高手过目,按星期分组,搞不懂access有的函数SQLsever怎么没有(weekday)
- 请教如何优化该存储过程
- access sql语句 insert into 批量添加数据
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+',sum(case course when '''+course+''' then grade else 0 end) as '''+course+'''' from (select distinct course from table1) t
set @sql='select name'+@sql+' from table1 group by name'
exec(@sql)
go
create table table1(name varchar(10),course varchar(10),grade int)
insert into table1
select '刘三','maths',45
union select '刘三','Chinese',39
union select '刘三','English',56
union select '王五','maths',77
union select '王五','Chinese',89
union select '王五','English',48declare @sql varchar(8000)
set @sql=''
select @sql=@sql+',sum(case when course='''+course+''' then grade else 0 end) as '''+course+''''
from (select distinct course from table1)t
exec('select name'+@sql+' from table1 group by name')
/*
name Chinese English maths
---------- ----------- ----------- -----------
刘三 39 56 45
王五 89 48 77
*/
set @sql=''
select @sql=@sql+','+quotename(course)+'=max(case course when '
+quotename(course,'''')+' then grade else 0 end)'
from table1
group by name
set @sql='select Name'+@sql+'into #
from table1 group by name'
print @sql--显示语句复制执行就行了
select * from #
As
(
Select Distinct Course From table1
)Select @cols = IsNull(@cols + ',[','[') + Course + ']' From CTECourseDECLARE @sql AS nvarchar(MAX)
SET @sql = N'SELECT *
FROM (SELECT [Name], [Course], [Grade]
FROM table1) as Header
PIVOT(SUM([Grade]) FOR [Course] IN(' + @cols + N')) AS Piv'EXEC sp_executesql @sql
as
declare @strSql varchar(1000)
set @strSql='select [name],'
select @strSql=@strSql +'sum(case when course='''+course+''' then grade end) as ['+course+'],' from (select distinct course from table1) a
set @strSql=substring(@strSql,1,len(@strSql)-1)
set @strSql=@strSql+' from table1 group by name '
exec(@strsql)