MySQL GROUP列

时间:2016-10-12 08:48:17

标签: mysql group-by

我没有找到解决我的小组问题的好方法。所以这就是:

我在一家工厂工作,我是一名策划人。我想知道有多少部件准备发货,但由于我们的轮班,有一个选项可以获得2行。

例如:

Item_group I_name Op_desc   Part_number    end_time             Act_end_time
78713/1 TP08001 OP8.1 Marás Q90014045197    2016-10-08 05:35:00 2016-10-07 19:31:00
78713/1 TP08001 OP8.1 Marás Q90014045198    2016-10-10 14:35:00 2016-10-07 14:34:00
78713/1 TP08001 OP8.1 Marás Q90014045199    2016-10-11 05:35:00 2016-10-06 20:32:00
78713/1 TP08001 OP8.1 Marás Q90014045200    2016-10-10 11:35:00 2016-10-07 06:49:00
78713/1 TP08001 OP8.1 Marás Q90014045201    2016-10-10 17:35:00 2016-10-06 01:16:00
78713/1 TP08001 OP8.1 Marás Q90014045202    2016-10-10 14:35:00 2016-10-05 19:54:00
78713/1 TP08001 OP8.1 Marás Q90014045203    2016-10-10 11:35:00 2016-10-07 17:34:00
78713/1 TP08001 OP8.1 Marás Q90014045204    2016-10-07 20:35:00 2016-10-05 20:59:00
78713/1 TP08001 OP8.1 Marás Q90014045205    2016-10-10 17:35:00 2016-10-07 17:12:00
78713/1 TP08001 OP8.1 Marás Q90014045206    2016-09-29 06:36:00 2016-10-06 02:46:00
78713/1 TP08001 OP8.1 Marás Q90014045207    2016-10-10 20:35:00 2016-10-07 02:48:00
78713/1 TP08001 OP8.1 Marás Q90014045208    2016-10-08 06:00:00 2016-10-07 20:07:00
78713/1 TP08001 OP8.1 Marás Q90014045208    2016-10-10 08:35:00 2016-10-07 20:07:00

如您所见,最后两个是相同的部分(Q90014045208),但由于它的变化,它被分割。实际结束时间是相同的,因为这是制造商实际结束的日期。简单的end_time是班次结束的时候。我想把它算作1,但现在有2条记录,所以它不合适。

我的代码是:

SELECT 

   set_id as Item_group
   ,part as Item_name
   ,op_desc as Operation_description
   ,lot as Part_number
   ,end_time as end_time
   ,act_end_time as Act_end_time

FROM
   schexp_hist

WHERE
   set_id like '78713/1' and op_desc='OP8.1 Marás'

“按批次分组”是不正确的,因为如果我想计算它,那么它不是1,它是2.我想从这些等于创建1行。

(我做了这个查询以显示我的问题,我想将这些记录用作源。)

我认为子查询可能很好:

SELECT
 *
FROM
     schexp_hist

Group by lot

但我不知道如何使用它。

2 个答案:

答案 0 :(得分:0)

按part_number尝试分组?并添加count(part_number)字段以检查其1行还是2行

答案 1 :(得分:0)

使用GROUP BY 批次 Part_number 应该可以正常使用