编程过程中遇到一难题,是有关存储过程的。高手指教!

dalywan 2003-08-19 10:40:49
我的具体情况是这样的:
有三张表,
货物表,hwtable 主要字段有代码hwcode,平均价格pjjg,库存量kcl
进库表 jinkutable 主要字段有代码hwcode,入库价格rkjg,入库量rkl
出库表 chukutable 主要字段有代码hwcode,出库价格ckjg,出库量ckl
具体规则如下,
每月底都进行库存期结,就是根据本月进出的货的价格和数量计算出库存的结余量及平均价格,平均价格是根据(上月的平均价格×上月的库存量+入库价格×入库量-出库价格×出库量)/(上月的库存量+入库量-出库量)计算出来的。在这里,同一种货物可能有若干次的入库或者出库。
不知道我说清楚没。请高手帮个忙了,谢谢了。
...全文
37 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yijiayi 2003-08-19
  • 打赏
  • 举报
回复
select a.hwcode
,sum(a.kcl)+sum(b.rkl)-sum(c.ckl) 结余量
,(select (aa.pjjg*aa.kcl)+bb.rkjg*bb.rkl-cc.ckjg*cc.ckl)/(aa.kcl+bb.rkl-cc.ckl) from bwtabel aa,jinkutable bb,chukutable cc where aa.hwcode=bb.hwcode and aa.hwcode=cc.hwcode and aa.hwcode=a.hwcode ) 平均价格

from hwtable a left join jinkutable b on a.hwcode=b.hwcode
left join chukutable c on a.hwcode=c.hwcode
group by a.hwcode,b.hwcode,c.hwcode

愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
update hwtable set kcl = A.kcl, pjjg = A.pjjg from
(select hwcode, sum(kcl) kcl, sum(kcl*pjjg)/sum(kcl) pjjg from
(select hwcode, kcl, pjjg from hwtable
union all
select hwcode, rkl, rkjg from jinkutable
union all
select hwcode, ckl, -ckjg from chukutable
) B
group by hwcode ) A
where hwtable.hwcode = A.hwcode

愉快的登山者


◢◣◢◣◢◣
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
select a.hwcode
,sum(a.kcl)+sum(b.rkl)-sum(c.ckl) 结余量
,(select (aa.pjjg*aa.kcl)+bb.rkjg*bb.rkl-cc.ckjg*cc.ckl)/(aa.kcl+bb.rkl-cc.ckl) from bwtabel aa,jinkutable bb,chukutable cc where aa.hwcode=bb.hwcode and aa.hwcode=cc.hwcode and aa.hwcode=a.hwcode ) 平均价格

from hwtable a left join jinkutable b on a.hwcode=b.hwcode
left join chukutable c on a.hwcode=c.hwcode
group by a.hwcode,b.hwcode,c.hwcode
waitwater 2003-08-19
  • 打赏
  • 举报
回复
你的货物表存储的是什么数据,月初结存么!

select sum(rkjg*rkl) from jinkutable where date>=月初 and date<=月末 group by hwcode 可以得到所有货物总入库价格

思路很简单啊,你见一个视图,细心一点就行了

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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