如何在powerbuilder 10.5中逐个使用

时间:2013-08-14 03:01:42

标签: sql sql-server tsql powerbuilder

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对它们进行分组以及总分钟。

1 个答案:

答案 0 :(得分:0)

您可以将此作为单个SQL语句执行此操作,将开始和结束时间之间的差异相加,并对idle_code进行分组。 (不要忘记将它从Idle_Code表转换为生产数据表)。这样可以避免将所有详细数据检索到客户端,并在那里进行分组和求和。

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

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