選択した 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) |
私の条件は次のとおりです。
- 賃金は、指定した 2 つの日付の間で計算されます。2012 年 9 月 5 日 - 2012 年 9 月 20 日
- 賃金は (pd_cost * pdtn_qty) から計算する必要があります。ただし、pdtn_qty は「ピース」に保持されていましたが、pd_cost は「ダース」に保持されていました。したがって、式は (pdtn_qty * pd_cost)/12 になります。
- OT * 番号を追加します。各ワーカーが行った OT の日数 (例: ジョンは 2 OT 日、メアリーは 1 OT 日)
- 総賃金を差し引く必要があります。If_social_sec が「TRUE」の場合は 15$
- カウントNo. 各従業員が働いた営業日の。
試してみましたが、このすべての条件を 1 つの SQL ステートメントにまとめることはできませんでした。ありがとうございました。