簡體   English   中英

根據列總和計算加班時間

[英]Calculate Overtime based on a sum of columns

我想計算每周工作時間超過40小時。

table = shift_log_data
database = shift_logs

Field           Type            Null    Key     Default     Extra   
id              int(100)        NO      PRI     NULL    auto_increment
admin_hrs       decimal(20,2)   NO              0.00    
shop_hrs        decimal(20,2)   NO              0.00    
fab_hrs         decimal(20,2)   NO              0.00    
paint_hrs       decimal(20,2)   NO              0.00    
vacation_hrs    decimal(50,2)   NO              0.00    
control_hrs     decimal(20,2)   NO              0.00    
test_hrs        decimal(20,2)   NO              0.00    
engine_hrs      decimal(20,2)   NO              0.00    
hydraulic_hrs   decimal(20,2)   NO              0.00    
699_paint       varchar(100)    NO              0.00    
699_shop        varchar(100)    NO              0.00    
maint_hrs       varchar(100)    NO              0.00    
date            date            NO              NULL    
name            varchar(50)     NO              NULL    
job             varchar(50)     NO              NULL    

使用日期字段,需要每周的admin_hrsmaint_hrs總計列。
如果小時數大於每周40個小時,請創建一個別名為overtime的別名,該名稱表示剩余的小時數大於40。

我努力了。

SELECT SUM(overtime)
  FROM
  (
    SELECT name,
           IF(SUM(test_hrs+fab_hrs+control_hrs+shop_hrs+paint_hrs+engine_hrs+hydraulic_hrs)>40,
             SUM(test_hrs+fab_hrs+control_hrs+shop_hrs+paint_hrs+engine_hrs+hydraulic_hrs))-40,
              0) AS overtime 
      FROM shift_log_data
     GROUP BY name
  ) TOTAL_OVERTIME

嘗試這個:

SELECT s.Name, YEAR(s.Date), WEEKOFYEAR(s.date),
      IF(SUM(test_hrs+fab_hrs+control_hrs+shop_hrs+paint_hrs+engine_hrs+hydraulic_hrs)>40,
          SUM(test_hrs+fab_hrs+control_hrs+shop_hrs+paint_hrs+engine_hrs+hydraulic_hrs))-40,
          0
         ) AS overtime 
FROM shift_log_data s
GROUP BY s.Name, YEAR(s.Date), WEEKOFYEAR(s.date);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM