select a.商品编号, ISNULL(b.进货数量, 0) 进货数(15)

  • 主题发起人 主题发起人 多多帮助
  • 开始时间 开始时间

多多帮助

Unregistered / Unconfirmed
GUEST, unregistred user!
select a.商品编号, ISNULL(b.进货数量, 0) 进货数量, ISNULL(b.进货金额, 0) AS 进货金额, ISNULL(c.销售数量, 0) AS 销售数量, ISNULL(c.销售金额, 0) AS 销售金额 from 商品表 LEFT OUTER JOIN (select 商品编号, sum(进货数量) AS 进货数量, sum(进货金额) AS 进货金额 from 进货表 group by 商品编号) b ON a.商品编号=b.商品编号 LEFT OUTER JOIN (select 商品编号, sum(销售数量) as 销售数量,sum(销售金额) as 销售金额 from 销售表 group by 商品编号) C on a.商品编号=c.商品编号怎么改成计算成本金额?多谢
 
avg(进货金额/进货数量)
 
TO:李翔鹏,假设有2条记录A记录 进货金额=1000, 进货数量=10;B记录 进货金额=1, 进货数量=1;则 Avg(进货金额/进货数量) =50.5,结果不正确吧?TO:多多帮助,你们要求的计算成本的公式中,关于 进货数量,进货金额,销售数量,销售金额,这4者的关系是什么,说出了,别人更容易帮你忙,只可惜,分不是很多。
 
TO:李翔鹏 的好像是进货均价吧。不是成本均价.我要的成本均价,应该是进货均价*销售数量吧
 
不明白你的成本金额的公式是怎么写的。
 
这是财务中的加权平均法算的:select 商品编号, sum(进货数量) AS 进货数量, sum(进货金额) AS 进货金额,CASE WHEN ISNULL(sum(进货数量), 0) <=0 THEN 0 ELSE sum(进货金额)/sum(进货数量) END AS 成本均价 from 进货表 group by 商品编号这是财务中的平均价:avg(进货金额/进货数量)
 
不知是我写错了,还是大家看错了,是求成本金额,不是成本均价[:D]
 
不是大家不想帮你,是你没把计算方法告诉大家。在说一次,你们要求的计算成本金额的公式中,关于 进货数量,进货金额,销售数量,销售金额,这4者的关系是什么?
 
成本金额 = 进货均价*销售数量。怎么在进货表和销售表中算。这个select a.商品编号, ISNULL(b.进货数量, 0) 进货数量, ISNULL(b.进货金额, 0) AS 进货金额, ISNULL(c.销售数量, 0) AS 销售数量, ISNULL(c.销售金额, 0) AS 销售金额 from 商品表 LEFT OUTER JOIN (select 商品编号, sum(进货数量) AS 进货数量, sum(进货金额) AS 进货金额 from 进货表 group by 商品编号) b ON a.商品编号=b.商品编号 LEFT OUTER JOIN (select 商品编号, sum(销售数量) as 销售数量,sum(销售金额) as 销售金额 from 销售表 group by 商品编号) C on a.商品编号=c.商品编号怎么改,能达到要求,多谢
 
所以单从这两张表是怎么算结果都不地对的。你要多问一下财务的人就知道。如果使用加权平均法结果是比较好,但缺点就是计算量大,只有事后才能得到结果。如果使用平均法算结果就很不准。还有一种就是后进先出法算。这程序算法在程序上实现比较困难,也只能事后才能得到结果。如果使用加权平均法算的话,单单一条语句是无法计算出结果来的,还有考虑库存问题。首先用库存和新进货计算出当前货物的成本价,再用这个成本价*销售数量就可以你的销售成本。这个肯定不会是一句话能做到的。就算能写出来,可读性也很差了。自己动脑筋吧。select 商品编号, sum(进货数量) AS 进货数量, sum(进货金额) AS 进货金额,CASE WHEN ISNULL(sum(进货数量), 0) <=0 THEN 0 ELSE sum(进货金额)/sum(进货数量) END AS 成本均价 from 进货表 group by 商品编号只算出进货的加权平均的成本价,还有仓库的库存。库存财务每个月也会核出加权平均单价来的,所以你应该select a.商品编号, (a.库存量 * a.库存成本 + b.进货金额)/(a.库存量 + b.进货数量) 加权平均单价 from 仓库表 a, (select 商品编号, sum(进货数量) AS 进货数量, sum(进货金额) AS 进货金额 from 进货表 group by 商品编号 ) b where a.商品编号 = b.商品编号再 成本金额 = 进货均价*销售数量 计算销售成本,再扣掉库存量,算出库存量和库存加权平均单价,作为下个月核用。但是前面这条语句只考虑了理想情况,如果这样就a.库存量 + b.进货数量 为零或负数怎么办,或者库存没有数量怎么或者本月该商品没有采购怎么办。这些条件处理起来就复杂了。这就只是加权平均算的处理方式,如果你的财务不是用这种方式处理的,你的整个计算方式就全部要改。这些计算方法要与财务部门确认。因为税务对这些成本计算方法有严格的要求,选择了一种一后,基本上以后公司就不可能再改了,要改与税务部门申报,所以这些事情还是认真与财务部门沟通再做。
 
首先感谢willing66做的介绍。但不太明白[:)],有没有这方面的资料。就是关于加权平均法、指定批次法。这方面的资料,谢谢。
 
发个交流群很火的噢:4654765
 
自己另外做计算字段计算成本么
 
用的是一个ADO啊
 
用加权平均法
 
select a.商品编号, ISNULL(b.进货数量, 0) 进货数量, ISNULL(b.进货金额, 0) AS 进货金额, ISNULL(c.销售数量, 0) AS 销售数量, ISNULL(c.销售金额, 0) AS 销售金额 from 商品表 LEFT OUTER JOIN (select 商品编号, sum(进货数量) AS 进货数量, sum(进货金额) AS 进货金额 from 进货表 group by 商品编号) b ON a.商品编号=b.商品编号 LEFT OUTER JOIN (select 商品编号, sum(销售数量) as 销售数量,sum(销售金额) as 销售金额 from 销售表 group by 商品编号) C on a.商品编号=c.商品编号说简单点就是怎么在这句里加上。进货均价 * 销售数量
 
库存财务每个月也会核出加权平均单价来的,所以你应该select a.商品编号, (a.库存量 * a.库存成本 + b.进货金额)/(a.库存量 + b.进货数量) 加权平均单价 from 仓库表 a, (select 商品编号, sum(进货数量) AS 进货数量, sum(进货金额) AS 进货金额 from 进货表 group by 商品编号 ) b where a.商品编号 = b.商品编号再 成本金额 = 进货均价*销售数量 计算销售成本,再扣掉库存量,算出库存量和库存加权平均单价,作为下个月核用。但是前面这条语句只考虑了理想情况,如果这样就a.库存量 + b.进货数量 为零或负数怎么办,或者库存没有数量怎么或者本月该商品没有采购怎么办。"进货均价"都已经帮你计算好了,你还不会改改吗?“加权平均单价”就是“进货均价”呀。
 
后退
顶部