日期:2014-05-17  浏览次数:20610 次

分不高难度高,高手请时帮助下
运费模板表
物流公司 运送到 首重 首费 续重 续费
---------------------------------
中通 江苏,浙江,上海 1 5 1 1
中通 安徽,北京,天津,山东,河南,河北,湖南,湖北,江西,福建,广东 1 8 1 6
中通 黑龙江,吉林,辽宁,山西,陕西,广西,云南,贵州,四川,海南 1 10 1 8
中通 内蒙古,青海,宁夏,甘肃,新疆,西藏 1 10 1 10
顺丰 江苏,浙江,上海 1 12 1 2
顺丰 安徽,北京,天津,山东,河南,河北,湖南,湖北,江西,福建,广东 1 22 1 10
顺丰 黑龙江,吉林,辽宁,山西,陕西,广西,云南,贵州,四川,海南 1 22 1 12
顺丰 内蒙古,青海,宁夏,甘肃,新疆,西藏 1 22 1 18
宅急送 江苏,浙江,上海 1 10 1 1
宅急送 安徽,北京,天津,山东,河南,河北,湖南,湖北,江西,福建,广东 1 16 1 8
宅急送 黑龙江,吉林,辽宁,山西,陕西,广西,云南,贵州,四川,海南 1 18 1 9
宅急送 内蒙古,青海,宁夏,甘肃,新疆,西藏 1 26 1 24

出货记录表
编号            运送到  总重量  物流公司  合计费用
121219007 安徽 18.20 中通
121218045 重庆 39.20 中通
121217052 安徽 32.00 顺丰
921219003 山东 33.80 顺丰
121219025 山东 2.30 顺丰
121217002 广西 83.40 顺丰
121219015 北京 4.30 顺丰
921219017 陕西 27.90 顺丰
121219024 浙江 5.10 顺丰
121218037 浙江 1.00 顺丰
121219004 河南 0.20 中通
121218054 福建 1.00 顺丰
121214029 上海 32.90 顺丰
121218012 广西 41.30 顺丰
121214025 上海 0.00 中通
121219028 江苏 5.30 顺丰

求出货记录表中合计费用
注:重量计算使用四舍五入:如1.4KG=1KG,1.6KG=2KG
物流运费模板计算,SQL

------解决方案--------------------

select a.*,b.首重*b.首费+
(case when a.总重量>b.首重 then round((a.总重量-b.首重),0)*b.续费/b.续重 
else 0 end) as 合计费用
from 出货记录表 a inner join 运费模板表 b 
on a.物流公司=b.物流公司 and a.运送到 like '%'+b.运送到+'%'