(200分求)关于移动加权平均法的语法

YewPu 2009-05-20 03:40:20
加精
关于实现移动加权平均法的问题。本人表设计如下:
1、期初库存表
2、进货表
3、退货表
4、销售表
5、退货表
6、盘点表
7、调拨表
就这七个表中,除盘点,和调拨表没有单价外,其它的都有单价,调拨和盘点时按当天的平均单价。
如果按此做法调拨表的数据可以忽略,
但此六个表必须用一个查询得出一天的数据。


200分酬谢。
...全文
2326 78 打赏 收藏 转发到动态 举报
写回复
用AI写文章
78 条回复
切换为时间正序
请发表友善的回复…
发表回复
THP00 2011-11-01
  • 打赏
  • 举报
回复
学习中
yiguanjun 2009-10-27
  • 打赏
  • 举报
回复
关注
hchjjun 2009-10-27
  • 打赏
  • 举报
回复
不止入库,每次库存变化都要重新算价格的吧
qzyuanmu 2009-10-27
  • 打赏
  • 举报
回复
关注下
acen_chen 2009-10-27
  • 打赏
  • 举报
回复
做个标示整合在一个表里面就行了。。。
pecho 2009-10-24
  • 打赏
  • 举报
回复
我上面说的是从本月初到当天,
如果你经常用到这个价格,那么,最好的办法是,从本月起始,每一天算一个价,每一个物料存一个价格表,当天以前天的价格做期初,也很快,存起来。因为前面的价格是不会变了。所以写成存付诸过程,用触发器启动。这样,你就可以直接从格价表中得到每天的要的价格了,每一次进出,价格会自动计算。
pecho 2009-10-24
  • 打赏
  • 举报
回复
同时,我有一个库存表,库存表里,有货位,目前我按批号存的。所以物料有重,里面表示那一天收到那种物料,如果批号相同,合并数量,库存表的目的为的是指明货位,与出入表复核数量,存最近的时货价格。
如果要核算成本价格,所有进表中。算出目前库存中当月一个货物的总价值,∑(单价×数量*各种率)除一个月的总数量,再与上月结存价格平均。
这样说对吗?
pecho 2009-10-24
  • 打赏
  • 举报
回复
我现的在作法是,把所有涉及进货与出货的明细物料项放在一个表中,当然,单据的主表是另外的,一个主表拖着这个进出表中的数据,。当然,表中有一个正负标计。一个月的数据提出来,里面有物料代码,规格,批号,单价数量,率(税,折。。。)。想怎么算就怎么算。
你现在已经有这么多表了。作一个视图,用union语句把表合起来。合的时候加上标计,在一个表中,就好说了,
Akoli 2009-10-19
  • 打赏
  • 举报
回复
MARK一下,表示曾经关注过。
fuxiaoyang13 2009-10-08
  • 打赏
  • 举报
回复
DINGDING
aloxy 2009-10-06
  • 打赏
  • 举报
回复
[Quote=引用 60 楼 hdyes 的回复:]
引用 56 楼 aloxy 的回复:
SELECT 编码, 通用名, 单位, SUM(数量) AS 数量, MAX(进价) AS 最高进价, MIN(进价)
      AS 最低进价, SUM(数量 * 进价) / SUM(数量) AS 加权价, SUM(金额) AS 金额
FROM dbo.v_rk
GROUP BY 编码, 单位, 通用名


你这个语句是哪来的啊?认真看一看就知道行不通。
第一、这是没日期限制的。
第二、假设有日期限制时,此语法得出来的单价是绝对错误的。
[/Quote]
我的系统里的一个加权计算,视图里已经做了时间限制的。datawindow的filter功能你忘记了吗
无·法 2009-07-30
  • 打赏
  • 举报
回复
不懂,帮顶
YewPu 2009-07-30
  • 打赏
  • 举报
回复
也许你的讨论是可行的,但未免也离题啦!我需要是目前我所想的解决方法,这世界的用户无奇不有,为何偏偏要按照你的做法来做呢?我们设计不是按用户的需求设计吗?难道就要参杂有书本上有会计知识吗?既然用户这样要求,我们就必须这样设计,我的问题是这样问,你们就这样答好吗?不要再离题啦。
beyon2008 2009-07-30
  • 打赏
  • 举报
回复
如果按商品的话
每个union的结果集加商品id
加group by 商品id
最后结果也加上商品id
beyon2008 2009-07-30
  • 打赏
  • 举报
回复
这是加项,减项你用负数就可以了
beyon2008 2009-07-30
  • 打赏
  • 举报
回复
假如:
期初库存表 a
进货表 b
退货表 c
select sum(sum_money)/sum(sum_qty) as jqcb
from
(select
(select 'kc',sum(数量) as sum_qty,sum(数量*单价) as sum_money from a
where qcmonth = @month)
union
(select 'jh',sum(数量) as sum_qty,sum(数量*单价) as sum_money from b
where fsdate between @begindate and @enddate)
union
(select 'th',sum(数量) as sum_qty,sum(数量*单价) as sum_money from c
where fsdate between @begindate and @enddate)
from dual) z

chennavy 2009-07-30
  • 打赏
  • 举报
回复
学习了2009年7月30日16时16分50秒
YewPu 2009-07-30
  • 打赏
  • 举报
回复
[Quote=引用 56 楼 aloxy 的回复:]
SELECT 编码, 通用名, 单位, SUM(数量) AS 数量, MAX(进价) AS 最高进价, MIN(进价)
      AS 最低进价, SUM(数量 * 进价) / SUM(数量) AS 加权价, SUM(金额) AS 金额
FROM dbo.v_rk
GROUP BY 编码, 单位, 通用名
[/Quote]

你这个语句是哪来的啊?认真看一看就知道行不通。
第一、这是没日期限制的。
第二、假设有日期限制时,此语法得出来的单价是绝对错误的。
newniu666 2009-07-16
  • 打赏
  • 举报
回复
数据库的问题吗
你可以做个存储过程呀
aloxy 2009-07-13
  • 打赏
  • 举报
回复
SELECT 编码, 通用名, 单位, SUM(数量) AS 数量, MAX(进价) AS 最高进价, MIN(进价)
AS 最低进价, SUM(数量 * 进价) / SUM(数量) AS 加权价, SUM(金额) AS 金额
FROM dbo.v_rk
GROUP BY 编码, 单位, 通用名
加载更多回复(55)

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧