如,有两个表:第一个记录加班日期,叫OverDate;第二个是职工奖金系数,叫BonuCft。字段和数据是这样:表OverDate:
ID Name Hours Date
----------------------------------------
1 张三 2 2009-1-2
2 张三 3 2009-1-3
3 李四 3 2009-1-2
4 张三 1 2009-1-6
5 王五 3 2009-1-5
6 李四 1 2009-1-6表BonuCft:
ID Name coefficient
----------------------------------------
1 张三 0.8
2 李四 1.1
3 王五 0.9
4 陈六 1.0现在我想用sql语句做出一个“应发奖金表”,计算公式是:
奖金=加班总小时数×100元×奖金系数
即做成:
Name Bonus
------------------------
张三 480 (即6×100×0.8)
李四 440
王五 270这个sql语句怎么写?
ID Name Hours Date
----------------------------------------
1 张三 2 2009-1-2
2 张三 3 2009-1-3
3 李四 3 2009-1-2
4 张三 1 2009-1-6
5 王五 3 2009-1-5
6 李四 1 2009-1-6表BonuCft:
ID Name coefficient
----------------------------------------
1 张三 0.8
2 李四 1.1
3 王五 0.9
4 陈六 1.0现在我想用sql语句做出一个“应发奖金表”,计算公式是:
奖金=加班总小时数×100元×奖金系数
即做成:
Name Bonus
------------------------
张三 480 (即6×100×0.8)
李四 440
王五 270这个sql语句怎么写?
A.Name,
A.coefficient*100*ISNULL(B.Hours,1) AS coefficient
FROM BonuCft AS A
LEFT JOIN (
SELECT name,SUM(Hours) AS Hours
FROM OverDate
GROUP BY Name
) AS B
ON A.Name=B.Name
from OverDate A Inner Join BonuCft B
On A.Name=B.name
Group by A.Name