-1
date_entry  time_start  time_finished idle_code    qty_good
8/8/2013    13:00       13:30            6            10     
8/8/2013    13:30       15:20            0            20
8/8/2013    15:20       15:30            6            5 
8/8/2013    15:30       16:25            0            10
8/8/2013    16:25       16:40            7            0
8/8/2013    16:40       17:25            0            40
8/8/2013    17:25       17:40            3            10
8/8/2013    17:40       24:00            1
8/8/2013    24:00       00:00            1
8/8/2013    00:00       00:30            1

空闲时间图例:

0   Production  
1   Adjustment/Mold 
2   Machine 
3   Quality Matter  
4   Supply Matter   
5   Mold Change 
6   Replacer    
7   Others

----------结果--------------------------总计分钟

idle_code total mins 
1 -       410:00 mins
2 -        00:00
3 -        15:00
4 -        00:00
5 -        00:00
6 -        40:00
7 -        15:00 
0 -       210:00

第一个问题如何按 idle_code 分组并添加总分钟数。?

----------其他报告---------------------生产效率报告

idle_code         total mins
    1             410:00 mins
    2             00:00 mins
    3             15:00 mins
    4             00:00 mins
    5             00:00 mins
    7             15:00 mins 

总空闲时间 = 440:00 分钟(公式:总和(空闲 1、2、3、4、5、7 的总分钟数))

闲置率=63.77%(公式:(总闲置时间/总实际生产时间)*100)

总操作时间 = 250:00 分钟(公式总和(idl_code '0' 和 idle_code '6'))

机器效率=36.23%(公式(总运行时间/总实际生产时间*100))

实际生产总时间 = 690:00 分钟(公式总和(total_idle_time + 总运行时间))

这很容易在 powerbuilder 中使用计算字段进行计算,但我的问题是如何按 idle_code 对它们进行分组并且总分钟数。

4

1 回答 1

0

您可以将其作为单个 SQL 语句来执行,将开始时间和结束时间之间的差异相加,并在 idle_code 上进行分组。(不要忘记将其设为从 Idle_Code 表到 Production 数据表的左外连接)。这将使您免于将所有详细数据检索到客户端,并在那里进行分组和求和。

如果您需要将其作为计算列执行,并且您已检索到所有详细数据,则在 idle_code 上创建一个组,并创建一个求和的计算列(time_finished - time_start for group 1)。如果这些列是日期时间而不仅仅是时间值,那么 SecondsAfter() 函数可以执行此操作。

你如何存储你的 time_start 和 time_finished 列?那些日期时间数据类型?因为这使得计算更容易。如果它们只是时间,那么您将无法计算这些时间从午夜到第二天的持续时间。

于 2013-08-14T19:45:10.510 回答