我需要根据我选择的 Date_start 和 Date_end 创建一个表格来汇总每个员工的工资。
我有 3 个相关的表。
tbl_labor
lb_id | lb_name | lb_OT ($/day) | If_social_sec
1 | John | 10 | yes
2 | Mary | 10 | no
tbl_production
pdtn_date | lb_id | pdtn_qty(pcs) | pd_making_id
5/9/12 | 1 | 200 | 12
5/9/12 | 1 | 40 | 13
5/9/12 | 2 | 300 | 12
7/9/12 | 1 | 48 | 13
13/9/12 | 2 | 220 | 14
15/9/12 | 1 | 20 | 12
20/9/12 | 1 | 33 | 14
21/9/12 | 2 | 55 | 14
21/9/12 | 1 | 20 | 12
tbl_pdWk_process
pd_making_id | pd_cost($/dozen) | pd_id
12 | 2 | 001
13 | 5 | 001
14 | 6 | 002
结果将如下所示:
lb_name | no.working days | Total($)| OT payment | Social_sec($)| Net Wage |
John | 4 | 98.83 | 20 (2x10) | 15 | 103.83 (98.83+20-15)|
Mary | 2 | 160 | 10 (1x10) | 0 | 170 (160+10-0) |
我的条件是:
- 工资是在我指定的两个日期之间计算的,例如。5/9/12 - 20/9/12
- 工资必须根据 (pd_cost * pdtn_qty) 计算。但是,pdtn_qty 被保存在“碎片”中,而 pd_cost 被保存在“打”中。因此公式应该是 (pdtn_qty * pd_cost)/12
- 添加 OT * 编号。每个工人加班的天数(例如约翰有 2 天加班,玛丽有 1 天加班)
- 必须扣除总工资,例如。15$ 如果 If_social_sec 为“真”
- 数数 每个员工工作的工作日。
我已经尝试过,但我无法将所有这些条件合并到一个 SQL 语句中,所以请你帮帮我。谢谢你。