一个我不会但是不难的问题,向各位高手请教!^-^ 拜托!我这个菜鸟想了一天了!
select 客户,驾驶员,车牌代码,车牌号,趟数, 里程,数量,里程*数量 吨公里
from t1,t2,t3,t4,t5,t6
where 各种条件。
查询出表格:
客户 驾驶员 车牌代码 车牌号 趟数 里程 数量 吨公里
a b 01.123 123 1 75 10 750
a b 01.123 123 1 75 10 750
c d 01.126 126 1 65 10 650
d d 01.126 126 1 65 10 650
e f 02.302 302 1 75 21 1575
e f 02.302 302 1 75 21 1575
h i 02.238 238 1 45 21 945
h i 02.238 238 1 50 21 1050
……
注:
车牌代码包含:01.为5吨车
02.为21吨车
现要求按驾驶员结算每一趟的工资:按吨公里计算:即增加一列:结算工资
又有定额:
里程范围:
里程 5吨车 21吨车
41-50 0.043 0.0295
51-60 0.042 0.0290
61-70 0.040 0.0285
71-80 0.038 0.0280
……
如第一行:里程=75,是10吨车,则结算工资=750*0.038=28.5
现请问,怎样写得出各趟的结算工资,并最后根据驾驶员汇总出一段时间内的这个驾驶员的工资!
各位高手,请教!请教!
gm
问题点数:30、回复次数:3Top
1 楼jsldhy(我爱典典)回复于 2005-04-02 16:11:43 得分 0
怎么没有人响应呢?Top
2 楼yyj135(天地男儿)回复于 2005-04-02 18:11:20 得分 30
SELECT 客户,驾驶员,车牌代码,车牌号,里程,数量,吨公里, 金额=
CASE
WHEN left(车牌代码,2)='01' AND (里程>41 AND 里程<=50) THEN 吨公里*0.043
WHEN left(车牌代码,2)='01' AND (里程>50 AND 里程<=60) THEN 吨公里*0.042
WHEN left(车牌代码,2)='01' AND (里程>60 AND 里程<=70) THEN 吨公里*0.040
WHEN left(车牌代码,2)='01' AND (里程>70 AND 里程<=80) THEN 吨公里*0.038
WHEN left(车牌代码,2)='02' AND (里程>41 AND 里程<=50) THEN 吨公里*0.0295
WHEN left(车牌代码,2)='02' AND (里程>50 AND 里程<=60) THEN 吨公里*0.0290
WHEN left(车牌代码,2)='02' AND (里程>60 AND 里程<=70) THEN 吨公里*0.0285
WHEN left(车牌代码,2)='02' AND (里程>70 AND 里程<=80) THEN 吨公里*0.0280
END
FROM Driver
Top
3 楼jsldhy(我爱典典)回复于 2005-04-03 09:19:12 得分 0
谢谢了!Top




