首页 新闻 会员 周边

sql往临时表补齐数据

0
悬赏园豆:5 [已关闭问题] 关闭于 2014-07-17 17:27

临时表 时间列

timeid 

1300

1330

1400

1430

.....

 

现在的需求是补齐时间段

0600开始补到1230,有朋友给点实例代码,谢谢 

最后效果

timeid 

0600

0630

0700

0730

......

1300

1330

1400

1430

.....

孤_的主页 孤_ | 初学一级 | 园豆:13
提问于:2014-07-16 13:48
< >
分享
所有回答(1)
0

这个需要代码吗?你直接打开数据表补上就行了。

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-07-16 14:13

这个临时表是根据已有的数据生成的,我就是想在产生临时表的时候就把时间段补全,现在我不知道该怎么做

支持(0) 反对(0) 孤_ | 园豆:13 (初学一级) | 2014-07-16 14:17

declare @datatime datetime
declare @begintime varchar(4)
declare @endtime varchar(4)
set @datatime='20140715'
set @begintime='000000'
set @endtime='235959'
declare @sql_insert_title varchar(800) --往##Tmp_WorkflowReport临时表写数据申明变量
declare @sql_insert_end varchar(800) --往##Tmp_WorkflowReport临时表写数据申明变量
declare @sql_insert varchar(8000) --往##Tmp_WorkflowReport临时表写数据申明变量

declare @sql_select_title varchar(8000)--往##Tmp_WorkflowReport临时表查询数据申明变量
declare @sql_select varchar(8000)--往##Tmp_WorkflowReport临时表查询数据申明变量
declare @sql_select_end varchar(8000) --往##Tmp_WorkflowReport临时表查询数据申明变量

set @sql_insert_title =' if OBJECT_ID(N''tempdb.dbo.##Tmp_WorkflowReport'') is not null
begin
drop table ##Tmp_WorkflowReport
end select TimeId,'
set @sql_insert_end  =' into ##Tmp_WorkflowReport from  MT_JobProcessMonitor a
Left join MT_UnAssignTask_PostInfo b on a.TimerId =b.TimeId
Where a.ObjectName =''Monitor_Workflow_Report_TimerId''
and b.TimerDate ='''+convert(varchar, @datatime) +''' and b.TimeId >='''+convert(varchar,@begintime)+''' and b.TimeId <='''+convert(varchar,@endtime)+''''
set @sql_insert=''
select @sql_insert=@sql_insert + ' case PostId when ' +convert(varchar,PostId) +
 ' then UnAssignCount else 0 end as [' + convert(varchar,PostName) +'],' from PostInfo order by SortOrder;
select @sql_insert=SUBSTRING(@sql_insert,1,LEN(@sql_insert)-1)
exec(@sql_insert_title+ @sql_insert+ @sql_insert_end)--往##Tmp_WorkflowReport临时表写数据  这就是sql,帮我看看需要怎么修改一下,跪谢

支持(0) 反对(0) 孤_ | 园豆:13 (初学一级) | 2014-07-16 14:20

@孤_: 

1、0600这个数据哪来的,这个没有说明。

2、看数据的规律是半小时一次,如果是同一天,采用24小时制,很容易判断的。

你知道怎么在SQL Server中进行循环操作?给你一些励志吧。

  1. Example of WHILE Loop

    DECLARE @intFlag INT
    SET @intFlag = 1
    WHILE (@intFlag <=5)
    BEGIN
    PRINT @intFlag
    SET @intFlag = @intFlag + 1
    END
    GO

    ResultSet:

    1 2 3 4 5
  2. Example of WHILE Loop with BREAK keyword

    DECLARE @intFlag INT
    SET @intFlag = 1
    WHILE (@intFlag <=5)
    BEGIN
    PRINT @intFlag
    SET @intFlag = @intFlag + 1
    IF @intFlag = 4 BREAK;
    END
    GO

    ResultSet:

    1 2 3
  3. Example of WHILE Loop with CONTINUE and BREAK keywords

    DECLARE @intFlag INT
    SET @intFlag = 1
    WHILE (@intFlag <=5)
    BEGIN
    PRINT @intFlag
    SET @intFlag = @intFlag + 1 CONTINUE; IF @intFlag = 4 -- This will never executed BREAK; END GO

    ResultSet:

    1 2 3 4 5
支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2014-07-16 14:24

@爱编程的大叔: 帮我看看上面sql语句需要怎样修改吧,非常感谢

支持(0) 反对(0) 孤_ | 园豆:13 (初学一级) | 2014-07-16 14:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册