多个查询语句怎么拼接成一个临时表

来源:百度知道 编辑:UC知道 时间:2024/05/11 17:12:20
我现在有个任务 要在页面上显示如下表:
时间 总在线人数 游戏1人数 游戏2人数 ...
2009-8-11 10:00:00
2009-8-11 10:30:00
2009-8-11 11:00:00
基本就是按半小时统计一次数据库里的在线人数(取半点的值)
数据库结构为:
Time GameName Num
2009-08-11 09:55:56.000 游戏1 2
2009-08-11 09:55:56.000 游戏2 0
2009-08-11 09:56:56.000 游戏3 44
2009-08-11 09:57:56.000 游戏1 0
2009-08-11 09:57:56.000 游戏2 1
2009-08-11 09:57:56.000 游戏3 0
2009-08-11 09:57:56.000 游戏4 3

数据库基本上按每1分钟取值一次保存 时间怎么处理成按半小时取值,然后输出成上面表的格式?
具体怎么实现呢?请大家帮帮忙了,急

--创建测试用表TB;
IF OBJECT_ID('TB','U') IS NOT NULL
DROP TABLE TB;
GO
CREATE TABLE TB ([TIME] DATETIME,GAMENAME VARCHAR(10),NUM INT);
INSERT TB VALUES ('2009-08-11 09:55:56.000', '游戏1', 2),
('2009-08-11 09:55:56.000', '游戏2', 0),
('2009-08-11 09:56:56.000', '游戏3', 44),
('2009-08-11 09:57:56.000', '游戏1', 0),
('2009-08-11 09:57:56.000', '游戏2', 1),
('2009-08-11 09:57:56.000', '游戏3', 0),
('2009-08-11 09:57:56.000', '游戏4', 3);
GO

--创建表TT来存储每次的统计结果;
IF OBJECT_ID('TT','U') IS NOT NULL
DROP TABLE TT;
GO
CREATE TABLE TT (时间 DATETIME,游戏1 int,游戏2 int,游戏3 int,游戏4 int);
GO

--定义两个时间变量,用于设置起始时间和结束时间;
DECLARE @START_TIME DATETIME,@END_TIME DATETIME;
SET @START_TIME='2009-8-11 09:00:00.000';
SET @END_TIME='2009-08-11 10:00:00.000