请微软专家给看下这个SQL

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:24:53
运费是与存货名称做的外连接,但是运费只有100,一做外连接后就变成了每个对应项都是100了,怎么让其他的运费为0呢?

首先我觉得联结有问题,联结之间应该用关键字段而不是名称,就我来看有几种处理方法
1、在联结前将运费金额处理为运费单价,联结后由存货数量乘以单价得出每一存货的运费,该方法存在四舍五入的误差,一般情况下是够用了
2、录入数据时就让每笔存货对应一笔运费,例如一车货装了A和B,总运费100,在录入数据时,把A摊入费用40,B摊入费用60,该方法录入很麻烦,不符合运费结算的实际,大多数情况下不是很实用
3、联结前将存货表预处理一个特殊字段,如((select max(b.关键字) from 存货表 b where b.存货名=a.存货名)=a.关键字)as 是否为关键字最大的存货,然后联结时可以将运费和满足特殊字段条件的相联接,这样运费就不会重复,该方法缺点是没有将运费摊入每笔中,不方便逐笔的成本核算
4、再完美点可以在1的基础上判断四舍五入的差别,再进行调整,不过算法效率很低,不实用

设置一下就行!