【发布时间】:2014-01-22 02:32:53
【问题描述】:
这是我的一组数据:
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(id INT NOT NULL PRIMARY KEY
,user_id INT NOT NULL
,payroll_id INT NOT NULL
,type CHAR(3) NOT NULL
,time INT NOT NULL
,created INT NOT NULL
,modified INT NULL
,site_id INT NOT NULL
,is_lunch TINYINT NOT NULL DEFAULT 0
);
INSERT INTO my_table VALUES
(242144 ,1289 ,0 ,'in' ,1389020986 ,1389020986 ,1389020986 ,1000 ,0),
(242679 ,1289 ,0 ,'out' ,1389049440 ,1389135896 ,1389194110 ,1000 ,0),
(242777 ,1289 ,0 ,'in' ,1389106200 ,1389194089 ,1389194137 ,1000 ,0),
(242778 ,1289 ,0 ,'out' ,1389136200 ,1389194092 ,1389194153 ,1000 ,0),
(242779 ,1289 ,0 ,'in' ,1389194095 ,1389194095 ,1389194095 ,1000 ,0),
(242976 ,1289 ,0 ,'out' ,1389221878 ,1389221878 ,1389221878 ,1000 ,0),
(243062 ,1289 ,0 ,'in' ,1389280527 ,1389280527 ,1389280527 ,1000 ,0),
(243070 ,1289 ,0 ,'out' ,1389280683 ,1389280683 ,1389280683 ,1000 ,0),
(243071 ,1289 ,0 ,'in' ,1389280686 ,1389280686 ,1389280686 ,1000 ,0),
(243278 ,1289 ,0 ,'out' ,1389309710 ,1389309710 ,1389309710 ,1000 ,0),
(243361 ,1289 ,0 ,'in' ,1389365719 ,1389365719 ,1389365719 ,1000 ,0),
(243573 ,1289 ,0 ,'out' ,1389395108 ,1389395108 ,1389395108 ,1000 ,0),
(243700 ,1289 ,0 ,'in' ,1389626136 ,1389626136 ,1389626136 ,1000 ,0),
(243886 ,1289 ,0 ,'out' ,1389654144 ,1389654144 ,1389654144 ,1000 ,0),
(243998 ,1289 ,0 ,'in' ,1389713199 ,1389713199 ,1389713199 ,1000 ,0),
(244177 ,1289 ,0 ,'out' ,1389741915 ,1389741915 ,1389741915 ,1000 ,0),
(244254 ,1289 ,0 ,'in' ,1389797075 ,1389797075 ,1389797075 ,1000 ,0),
(244461 ,1289 ,0 ,'out' ,1389827243 ,1389827243 ,1389827243 ,1000 ,0),
(244545 ,1289 ,0 ,'in' ,1389883652 ,1389883652 ,1389883652 ,1000 ,0),
(244762 ,1289 ,0 ,'out' ,1389914226 ,1389914226 ,1389914226 ,1000 ,0),
(244830 ,1289 ,0 ,'in' ,1389968788 ,1389968788 ,1389968788 ,1000 ,0),
(245025 ,1289 ,0 ,'out' ,1389996312 ,1389996312 ,1389996312 ,1000 ,0),
(245214 ,1289 ,0 ,'in' ,1390232302 ,1390232302 ,1390232302 ,1000 ,0);
我想算出每周工作的总小时数,然后从 40 中减去该数字以得到加班时间。按周细分,第 1 周正常工时、第 1 周加班工时、第 2 周正常工时、第 2 周加班工时。全部通过MYSQL。这个数据集甚至有可能吗?
时间是出拳的时间。所以如果你的'type' 是'in' 你的时钟已经开始了。下一个'out' 表示您已出局,因此您会发现'in' 和'out' 之间发生了多少'time'。
【问题讨论】:
-
写一个查询,如果它不起作用,提交它以便我们为您提供帮助。
-
一切皆有可能。
-
我最感兴趣的部分是如何将它们分组。如何知道什么属于什么。进进出出,说进出出是在一起的,现在找出他们之间的时间。
-
最简单的方法是添加第二个表格,其中包含每天在工作日花费的时间。您可以随时维护该表或对其进行批处理。如果您无法添加另一个表格,那么您可以将所有出局的总和减去特定日期的所有入局。
-
我也是这么想的。将工作时间和工作时间分组的更好方法。这组数据太宽泛,无法正确分组和计算。