临时表 时间列
timeid
1300
1330
1400
1430
.....
现在的需求是补齐时间段
0600开始补到1230,有朋友给点实例代码,谢谢
最后效果
timeid
0600
0630
0700
0730
......
1300
1330
1400
1430
.....
这个需要代码吗?你直接打开数据表补上就行了。
这个临时表是根据已有的数据生成的,我就是想在产生临时表的时候就把时间段补全,现在我不知道该怎么做
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,帮我看看需要怎么修改一下,跪谢
@孤_:
1、0600这个数据哪来的,这个没有说明。
2、看数据的规律是半小时一次,如果是同一天,采用24小时制,很容易判断的。
你知道怎么在SQL Server中进行循环操作?给你一些励志吧。
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
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
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
@爱编程的大叔: 帮我看看上面sql语句需要怎样修改吧,非常感谢