51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7257|回复: 36
打印 上一主题 下一主题

[求助] SQL server 查询问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-1-26 16:52:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.查找每个人每天最早和最完的记录,

2.并用最早和最完的记录,与"09:00:00"和"18:00:00"做比较,计算出迟到或早退的分钟数.

3.最后统计每个人每个月迟到和早退的次数和总的分钟数.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-1-26 16:57:55 | 只看该作者

你想搞什么啊

纯粹的SQL问题/.??/
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-1-26 17:11:29 | 只看该作者
员工考勤啊
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-1-26 17:12:54 | 只看该作者

你是纯粹的想写查询句子是吧!!

不是别的什么啊
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-1-26 17:19:22 | 只看该作者
你不会要给我删吧?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-1-26 17:38:11 | 只看该作者

你居然这样想的
本来想 告诉你怎么搞的

没有指望了 你
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-1-26 17:56:47 | 只看该作者
哈哈,就是要纯粹的语句
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-1-26 23:26:22 | 只看该作者

问题不明白

不是很明白你的问题,为什么每个人一天有那么多次签到?????
如果上班签到,为什么王佳2006-12-20,有3次上班签到????
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-1-29 08:27:18 | 只看该作者
这个你把正常上班也就是“签到。。签退”,为一个工1,其他情况,不全的,先签退,再签到;或者就签一次的为旷工0,或者记半天工,这样便于你分析。再根据你要求的时间来筛选。。。
具体写的要根据你自己的表来调用拉,
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-1-29 08:32:03 | 只看该作者
没有严格按要求正常上。。下。完整班次的,君按 旷工处理也就是0,半个工设为0.5,看你的意思,
有完整上下班的,按最后一次签到,到第一次签退的时间结算。为1,但是中间时间的间隔,也就是你们公司规定的上班到下班的签到时间,大于一定时间的也按0.5,还有早退现象,你自己想吧
重要的你设置参数。。1.        0         .0.5       如何用时间段来给他们定义,
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2007-1-29 09:47:37 | 只看该作者
我们公司那个门是指纹鉴定开关,出入都的用指纹来开门,所以会有多条记录.
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-5-11 08:52
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2007-1-29 10:02:39 | 只看该作者
    原帖由 roadxizi 于 2007-1-29 09:47 发表
    我们公司那个门是指纹鉴定开关,出入都的用指纹来开门,所以会有多条记录.

    挺先进的!不过签到和开门应该分开记录吧!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-1-29 10:14:01 | 只看该作者
    挺麻烦的。。。
    纯SQL的话。。。。
    嵌套条件比较多,而且SQL SERVER在做子查询的时候,返回结果不能超过一个,不然会导致ODBC 错误
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2007-1-29 10:14:31 | 只看该作者
    那里那里,买人家个东西用了,

    我现在问的问题了查找记录,

    呵呵  并不是设置那个指纹鉴定器
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-1-29 11:16:38 | 只看该作者
    最晚记录可以这么写:
    SELECT MAX(日期时间) AS Expr1, 姓名
    FROM 表名
    WHERE (日期时间 BETWEEN '2005-8-1 00:00:00' AND '2005-8-1 23:59:59') AND
          (姓名 = 'ecust')
    GROUP BY 姓名

    姓名可以做嵌套查询:  SELECT DISTINCT 姓名 FROM 表名
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-1-29 11:32:49 | 只看该作者
    楼主是要sql语句吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2007-1-29 11:50:06 | 只看该作者
    (姓名 = 'ecust')  感觉不对,因为不知道谁走的最晚,

    WHERE 条件里怎么就固定了姓名了呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-1-29 11:56:12 | 只看该作者
    最早:
    select * from table1 where not exists (select id from table1 where id = a.id and 日期时间 < a.日期时间) as a

    最晚:
    select * from table1 where not exists(select * from table1 where id = a.id and 日期时间 > a.日期时间) as a
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-1-29 12:04:29 | 只看该作者

    好像不对了,对于某一个人id不唯一,不能关联!应该这样写:

    最早时间:
    select * from table1 where not exists (select id from table1 where 姓名 = a.姓名 and 日期时间 < a.日期时间) as a

    最晚时间:
    select * from table1 where not exists(select * from table1 where 姓名 = a.姓名 and 日期时间 > a.日期时间) as a
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-1-29 12:06:05 | 只看该作者
    以上是1的回答,请楼主检查
    2、3我认为还比较难,等吃完饭回来研究!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 19:37 , Processed in 0.126899 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表