douyi1341 2012-03-19 11:40
浏览 23
已采纳

Php / MySQL:小时报告,小时费率

I have the following tables (simplified):

   hours               hour_rates
 - user_id            - user_id
 - date               - date
 - hours              - hourly_rate

Hours table example:

1 - 2012-03-19 - 8

This means that user with id=1, at 2012-03-19 worked 8 hours in total.

The hourly rate for a person can change in time, so I have the second table:

hour_rates table Example

1 - 2011-12-01 - 20
1 - 2011-12-20 - 25

So for user with id=1, we set a hourly rate of 20$ at 2011-12-01. We changed his hourly rate at 2011-12-20, to 25$.

What I want is, to calculate how much I have to pay for a given user (ex. id=1) for a given period (ex. 2012-01-01 -> 2012-02-01).

Can I calculate this simply mysql side? If not, how to do it in an efficient way?

  • 写回答

4条回答 默认 最新

  • duan35557593 2012-03-19 12:05
    关注

    In hour_rates table you should have two dates: start_date and end_date this means from start_date to end_date the emplyer has been paid x$ per hour.

    Then use the same query proposed by bpgergo modified like this:

       select sum(h.hours * hr.hourly_rate) as pay
       from hours h, hour_rates hr
       where h.user_id = :user_id --here you will set the user id parameter
       and h.user_id = hr.user_id and (h.date BETWEEN hr.start_date AND hr.end_date 
       and h.date between STR_TO_DATE('01,1,2012','%d,%m,%Y') and STR_TO_DATE('01,1,2011','%d,%m,%Y')
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路