SQL分组查询

  最近园子里有很多介绍SQL语句的文章,小弟一时也耐不住寂寞,也把前几天写的一条关于分组查询的代码分享出来。

   前段时间公司让做了一个门禁的项目,在做数据查询这一块的时候,有一个需求,就是作为某个公司的考勤的设备。这样的话,我就得把某个人的刷卡上下班的时间记录(可以通过最早进公司时间和最晚出公司时间来判断)显示出来。然后做这个查询的时候,开始没想那么多,直接在存储过程里面拼SQL脚本,虽然做出来了,我相信数据量大的话,系统肯定非常非常慢。然后最后想到了分组求最大值最小值查询的方法,一条sql语句就能实现,非常简单。

ContractedBlock.gif ExpandedBlockStart.gif 环境
 
   
create table t2 (UserName varchar ( 50 ),dealTm datetime )
insert into t2 values ( ' 1 ' , ' 2011-03-07 08:20:10 ' )
insert into t2 values ( ' 1 ' , ' 2011-03-07 15:20:10 ' )
insert into t2 values ( ' 1 ' , ' 2011-03-07 15:30:10 ' )
insert into t2 values ( ' 1 ' , ' 2011-03-07 17:35:10 ' )
insert into t2 values ( ' 1 ' , ' 2011-03-08 08:20:10 ' )
insert into t2 values ( ' 1 ' , ' 2011-03-08 17:31:10 ' )
insert into t2 values ( ' 2 ' , ' 2011-03-08 08:20:10 ' )
insert into t2 values ( ' 2 ' , ' 2011-03-08 17:35:10 ' )
insert into t2 values ( ' 2 ' , ' 2011-03-07 08:20:10 ' )
insert into t2 values ( ' 2 ' , ' 2011-03-07 17:38:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-07 08:20:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-07 09:20:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-07 15:20:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-07 17:20:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-08 08:20:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-08 12:20:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-08 14:20:10 ' )
insert into t2 values ( ' 3 ' , ' 2011-03-08 18:20:10 ' )

 数据表中内容为2011030915425465.jpg

查询语句为

 
  
select
UserName,
-- 持卡人姓名
Convert ( char ( 8 ),dealTm, 112 ) as date, -- 日期
min (dealTm) as earliestTime , -- 最早时间
max (dealTm) as latestTime -- 最晚时间
from t2
group by Convert ( char ( 8 ),dealTm, 112 ) ,UserName

 查询结果为:

2011030915444447.jpg

转载于:https://www.cnblogs.com/mapeng-11/archive/2011/03/09/1978417.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值