| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3256 人关注过本帖
标题:如何选取查询结果中条件相同结果的最大最小值
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用TonyDeng在2012-2-21 00:47:38的发言:

這是論壇系統的設置。結不結有什麼關係,不妨礙繼續討論,分數只是浮雲,最終有結論才是王道。
谢谢,实际上这贴是我从别的论坛上转过来的,我也验证了结果,这种情况确实存在。最终是什么原因,还不十分明确,就想请大家一起讨论。

坚守VFP最后的阵地
2012-02-21 00:52
软件服务
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:344
专家分:736
注 册:2011-12-23
收藏
得分:0 
回复 11楼 sdta
.
2012-02-21 12:08
贝贝考
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-1-26
收藏
得分:0 
我主要是没有vfp基础,第一次接触。有点吃力,各位见笑了。 有人建议我继续的话使用循环结构,我没有什么基础,请高手能多多给予帮助。
2012-02-21 16:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你把從mdb中Select出來的原始數據(不用統計,只要原始的數據)輸出到一個dbf中貼上來看看。

授人以渔,不授人以鱼。
2012-02-21 16:15
贝贝考
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-1-26
收藏
得分:0 
111.rar (153.85 KB)

这就是选择出来的原始数据,谢谢了。
2012-02-22 09:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
主要实现目的,查找每个工号在一个月内 每天在19:00-22:30分在单位上班时间 超过一个小时小于一个半小时 作为a类记录一次,超过一个半小时的作为b类记录一次,自后出统计结果。


你這些記錄數據怎麼算得出你要的東西呀?下面是工號為2的那個人在19:00以後的記錄,第一條只有下班時間沒有上班時間,後面三條只有上班時間沒有下班時間。

   Record#            USERID CHECKTIME                  
      6354                 2 2011.08.21 21:12:59         
     26318                 2 2011.10.10 19:34:33         
     37469                 2 2011.11.09 19:07:51         
     37801                 2 2011.11.10 19:02:44         

這個人,在2011.08.11這天,打了三次卡,分別是12:02、14:16、17:39,你解釋一下這是什麼樣的情形?數據該如何統計?這個人似乎很自由,8月3日只在中午上了兩小時的班。看你給的原始記錄,這個人2011.09.10根本就沒有上班記錄,但你在1樓的統計結果是那天的數據,咋來的?

[ 本帖最后由 TonyDeng 于 2012-2-22 14:32 编辑 ]

授人以渔,不授人以鱼。
2012-02-22 14:14
贝贝考
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-1-26
收藏
得分:0 
对不起,是我没解释。情况是这样的,这个数据库记录的不仅仅是晚上的上班时间,还有白天的上班时间,我需要的就是一个人每个月在晚上19:00-22:30分这个期间,他在单位的时间长度,如果在19:00-22:30分在单位的时间超过一个小时小于一个半小时,那么记为a类出勤,如果等于和大于一个半小时,那么记为b类出勤。白天的上班时间不予参考,因为原始数据记录的是一个人所有的上下班记录,白天上下班也保存了,有的时候会有人出入就按,我现在选取的就是19:00-22:30分的。因为在此期间如果一个人要是想有有效记录,至少要有两个记录,一个是进一个是出,但是怕出现重复按指纹的情况,也就是出现三次或者四次记录,就是需要用离22:30分最近的时间减去离19:00最近的时间,得出最后统计。
2012-02-22 15:41
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
問題是有的記錄有進無出,或有出無進。我知道你要統計晚上加班的數據,篩選過這種記錄很少,其中就出現那種缺打卡的情況。特別是,2號工在2011年9月10日沒有任何打卡記錄,但你1樓的結果卻是這一天的加班數據,哪裏出問題了?

授人以渔,不授人以鱼。
2012-02-22 15:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
現在的問題是,上下班出現缺一次打卡的時候,如何判斷他是開溜了還是真的忘記打卡?時間怎麼算?這直接影響你的統計準確性。你這個記錄卡,又沒有標記是進還是出,只能按次數來估,但像出現那個打了三次卡的情況,就難以判斷了:第一次12:02進來,第二次14:16出去,然後17:39又進來?抑或是反過來?無論是前者還是後者,總歸是缺了一次上班或下班打卡,機器並不能確定他到底什麼時候開始或終止工作的。我查這些數據,不是說白天,因為晚上也有類似的情況,2號工就有四天是這樣的,16樓就這個人在2011年晚上的打卡記錄,只有4條,分別是4天,每天只打一次,你怎麼算他的加班情況?

我覺得你應該拿原始記錄單來核實一下情況,先想好如何解決這類問題,而不要依賴電腦的SQL統計,現在看來,那個統計結果顯然是錯的。你太相信SQL查詢的正確性了吧。

[ 本帖最后由 TonyDeng 于 2012-2-22 16:17 编辑 ]

授人以渔,不授人以鱼。
2012-02-22 16:12
贝贝考
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-1-26
收藏
得分:0 
对不起,数据没错,一楼数据有我手动添加的记录,我开始是为了请教怎么在四次记录中选取最大最小值,是我造成的,不好意思。我这个软件的总体目的,就是考核19:00-22:30在单位的时间长度,超过一个小时小于一个半小时的,记为a类考勤,等于和大于一个半小时的记为b考勤,如果缺少进或者出的记录视为无效考勤,其余时间的考勤记录不要。我们的要求就是在规定的时间到单位,到了后要够一个小时才算记录加班,否则一律不算加班,一个半小时的给予多奖励。只要离22:30分时间最近的减去离19:00时间最近得出的结果等于一个小时或者超过一个半小时,都算有效记录,缺少记录的或者相减时间不够一个小时,都视为无效。
2012-02-22 16:30
快速回复:如何选取查询结果中条件相同结果的最大最小值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045865 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved