收藏本站 
广告服务 
网站地图 
>> 我们从网络和杂志上收集了近100000余篇各类电脑技术、网络技术、软件技术等方面的文章教程,我们的收录原则:不是精华拒不收录!
先飞电脑技术网技术文章
网络编程 | 网站建设 | 网络技术 | 设计教程 | 软件教学 | 程序开发 | 数据库开发 | 教育认证 | 硬件维护 | 媒体动画 | 机械电子 |
实例创建按小时来报告的查询
[ 作者:佚名    转贴自:网络转载    阅读次数:52    更新时间:2007-8-15 11:10:00   录入:刘光勇 ]         
    要创建一个可以每个小时报告之查询,首先要创建一个表格。该表格一列记录日期,而没有时间信息;另一列记录钟点。下面之表格有一列记录了不同之处理类型。

例如,我们可以按小时找出处理类型之总数。

CREATE TABLE test
(StartTime DATETIME NOT NULL
DEFAULT CURRENT_TIMESTAMP,
StartDate DATETIME NOT NULL
DEFAULT CONVERT(DATETIME, CONVERT(CHAR(10),
CURRENT_TIMESTAMP, 110)),
StartHour INT NOT NULL
DEFAULT DATEPART(hh,CURRENT_TIMESTAMP),
TranType INT NOT NULL
CONSTRAINT ck_TranType CHECK ( TranType IN
( 
1, -- insert
2, -- update
3, -- delete
)
DEFAULT 1
)
GO

接下来,插入test之数据来模拟一个可能之样本。

INSERT test (StartTime, TranType) 
VALUES (CURRENT_TIMESTAMP, 3)
INSERT test (StartTime, TranType) 
VALUES (CURRENT_TIMESTAMP, 2) 

INSERT test (StartTime, TranType) 
VALUES (CURRENT_TIMESTAMP, 3)
GO

DECLARE @hr int
SET @hr = DATEPART(hh, 
DATEADD(hh,-1,CURRENT_TIMESTAMP) )

INSERT test 
(StartTime, TranType, StartHour) _
VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 3, @hr)
INSERT test (StartTime, TranType, StartHour) _
  VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 1, @hr)
INSERT test (StartTime, TranType, StartHour) _
  VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 2, @hr)
GO

然后用一个查询来找出按日和小时之处理总数。

SELECT StartDate tran_day,
StartHour tran_hour
, CASE trantype WHEN 1 THEN 'insert'
WHEN 2 THEN 'update'
WHEN 3 THEN 'delete'
ELSE 'unknown'
END trantype,
COUNT(*) tran_total 
FROM
Test
GROUP BY
StartDate,
StartHour
,trantype
ORDER BY StartDate, StartHour
COMPUTE SUM(COUNT(*)) BY StartDate, StartHour
GO

去掉test可以清空test表格。

DROP TABLE test
GO
【加入到收藏夹】告诉好友】【打印此文】【关闭窗口
  版权声明:本站提供的“实例创建按小时来报告的查询”版权归文章所有者,转载请注明出处!
 ·上一篇文章:在查询结果中添加自动编号的方法      ·下一篇文章:教你轻松恢复/修复SQL的MDF文件
相关文章
·PVLAN对比VLAN技术的优势及配置实例[6]
·J2ME在移动设备上实现动画的实例讲解[49]
·使用MOCK对象进行单元测试的实例讲解[65]
·技术没有尽头 交换机升级故障排除实例[30]
·MIS系统实例中Oracle的安全策略[13]
网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号