时间         代理号 收入金额
2007-09-08   001   2
2007-09-08   001   2
2007-09-08   001   2
2007-09-08   002   2
2007-09-08   003   2
2007-09-08   004   2
2007-09-08   001   2
2007-09-08   001   2我想利用作业(job),把每个代理的每天的收入插入到另一个表中时间 代理 收入总额需要写一个循环插入? 希望能帮忙,谢谢

解决方案 »

  1.   

    insert into 另一个表
    select convert(char(10),时间,120) as '时间',sum(isnull(收入金额,0)) as '收入金额'
    from 表
    group by convert(char(10),时间,120)
      

  2.   

    insert into 表2(时间,代理,收入总额) 
    select 时间,代理号,sum(收入金额) from 表1 where datediff(dd,时间,getdate())=1 group by 时间,代理号
      

  3.   

    如果只是插当天的insert   into   另一个表 
    select   convert(char(10),时间,120)   as   '时间',sum(isnull(收入金额,0))   as   '收入金额' 
    from   表 
    where datediff(day,时间,getdate())=0
    group   by   convert(char(10),时间,120)
      

  4.   

    企业管理器
    --管理
    --SQL Server代理
    --右键作业
    --新建作业
    --"常规"项中输入作业名称
    --"步骤"项
    --新建
    --"步骤名"中输入步骤名
    --"类型"中选择"Transact-SQL 脚本(TSQL)"
    --"数据库"选择执行命令的数据库
    --"命令"中输入要执行的语句:
                        insert into 表2(时间,代理,收入总额) 
                        select 时间,代理号,sum(收入金额) from 表1 where datediff(dd,时间,getdate())=1 group by 时间,代理号           --确定
    --"调度"项
    --新建调度
    --"名称"中输入调度名称
    --"调度类型"中选择你的作业执行安排
    --如果选择"反复出现"
    --点"更改"来设置你的时间安排为每天凌晨00:00:00执行,以insert前一天的汇总数据
    然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:
    我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
      

  5.   

    thanks ,在吃饭,吃完饭试试
      

  6.   

    语句的写法楼上的大虾们已经很详细了,
    如下是job
    --作业与调度
    --使用JOB
    --企业管理器
    --管理
    --SQL Server代理
    --右键作业
    --新建作业
    --"常规"项中输入作业名称
    --"步骤"项
    --新建
    --"步骤名"中输入步骤名
    --"类型"中选择"Transact-SQL 脚本(TSQL)" 
    --"数据库"选择执行命令的数据库
    --"命令"中输入要执行的语句: 
    EXEC 存储过程名... --该存储过程用于创建表--确定
    --"调度"项
    --新建调度
    --"名称"中输入调度名称
    --"调度类型"中选择你的作业执行安排
    --如果选择"反复出现" 
    --点"更改"来设置你的时间安排 --该处设置为每月日的凌晨:00:00 
    --然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行--设置方法: 
    --我的电脑--控制面板--管理工具--服务--右键SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
      

  7.   

    --使用作业定时启停数据库的示例
    IF EXISTS(SELECT * FROM msdb.dbo.sysjobs WHERE name='启用pubs数据库')
    EXEC msdb.dbo.sp_delete_job @job_name='启用pubs数据库'--定义创建作业
    DECLARE @jobid uniqueidentifier
    EXEC msdb.dbo.sp_add_job
    @job_name = N'启用pubs数据库',
    @job_id = @jobid OUTPUT--定义作业步骤
    DECLARE @sql nvarchar(400),@dbname sysname
    SELECT @dbname=N'master',                   --数据库联机或者脱机只能在master数据库中进行
    @sql=N'ALTER DATABASE pubs SET ONLINE'  --使用pubs数据库联机(启用)
    EXEC msdb.dbo.sp_add_jobstep
    @job_id = @jobid,
    @step_name = N'启用pubs数据库处理',
    @subsystem = 'TSQL',
    @database_name=@dbname,
    @command = @sql--创建调度(使用后面专门定义的几种作业调度模板)
    EXEC msdb..sp_add_jobschedule
    @job_id = @jobid,
    @name = N'启用pubs数据库处理调度',
    @freq_type=4,
    @freq_interval=1,
    @freq_subday_type=0x1,
    @freq_subday_interval=1,
    @active_start_time = 075000 --每天07:50分执行--添加目标服务器
    DECLARE @servername sysname
    SET @servername=CONVERT(nvarchar(128),SERVERPROPERTY(N'ServerName'))
    EXEC msdb.dbo.sp_add_jobserver 
    @job_id = @jobid,
    @server_name = @servername
      

  8.   

    insert into table2   
    select convert(char(10),时间,120) as [时间],sum(isnull(收入金额,0)) as [收入金额]   
    from table1   
    where datediff(day,时间,getdate())=0 
    group by convert(char(10),时间,120)
      

  9.   

    if exists(select 1 from table2 where ....)
       update ..
    else
       insert ..