移动加权平均法的SQL,大家看看如何来写?

xuehf 2007-06-28 03:41:30
我已经把期初,以及本期收入,本期收出放在一个表中了,表A(tblA)

结构如下:
noid fType fQty fAmount
1 1 30 300
2 2 20 200
3 2 30 310
4 3 25 ?
5 3 20 ?
6 2 10 130
7 3 9 ?

根据noid 从上至下开始计算?处的值 ?的值等于其上面的记录fType= 1+2-3的值,如何来实现?
...全文
688 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2007-06-29
  • 打赏
  • 举报
回复
应该没有问题啊
xuehf 2007-06-28
  • 打赏
  • 举报
回复
第4行的结果好像不对的
hellowork 2007-06-28
  • 打赏
  • 举报
回复
/*结果
noid fType fQty fAmount
----------- ----------- ----------- -----------
1 1 30 300
2 2 20 200
3 2 30 310
4 3 25 350
5 3 20 460
6 2 10 130
7 3 9 234
*/
hellowork 2007-06-28
  • 打赏
  • 举报
回复
declare @t table(noid int,fType int,fQty int,fAmount int)
insert @t
select 1, 1, 30, 300 union all
select 2, 2, 20, 200 union all
select 3, 2, 30, 310 union all
select 4, 3, 25, NULL union all
select 5, 3, 20, NULL union all
select 6, 2, 10, 130 union all
select 7, 3, 9, NULL

----更新
UPDATE a SET fAmount =
fqty*((select
sum(case
when fType = 1 or fType = 2 then isnull(famount,0)
when fType = 3 then -isnull(famount,0) else 0
end)/
sum(case
when fType = 1 or fType = 2 then isnull(fqty,0)
when fType = 3 then -isnull(fqty,0) else 0
end)
from @t where noid <= a.noid))
FROM @t as a WHERE fType = 3
----查看
select * from @t
肥胖的柠檬 2007-06-28
  • 打赏
  • 举报
回复
4 3 25 ? --这个是不是? 190/20*25
xuehf 2007-06-28
  • 打赏
  • 举报
回复
我已经把期初,以及本期收入,本期收出放在一个表中了,表A(tblA)

结构如下:
noid fType fQty fAmount
1 1 30 300
2 2 20 200
3 2 30 310
4 3 25 ?
5 3 20 ?
6 2 10 130
7 3 9 ?

现在是要计算fType=3 的记录 fAmount的值,
fType=3的 fAmount值=其上面的记录 (fType=1的 fAmount + fType=2 的fAmount - fType=3 的fAmount)/(fType=1的 fqty + fType=2 的fqty - fType=3 的fqty)
肥胖的柠檬 2007-06-28
  • 打赏
  • 举报
回复
刚才我写错了, fType=3 处 fAMount=fqty* (其前面的记录 famount(1+2-3)/fqty(1+2-3))

??????这是什么意思????
w75251455 2007-06-28
  • 打赏
  • 举报
回复
你把你要的结果写下看看!!!
xuehf 2007-06-28
  • 打赏
  • 举报
回复
一两清风帮忙再看看
xuehf 2007-06-28
  • 打赏
  • 举报
回复
刚才我写错了, fType=3 处 fAMount=fqty* (其前面的记录 famount(1+2-3)/fqty(1+2-3))
hellowork 2007-06-28
  • 打赏
  • 举报
回复
declare @t table(noid int,fType int,fQty int,fAmount int)
insert @t
select 1, 1, 30, 300 union all
select 2, 2, 20, 200 union all
select 3, 2, 30, 310 union all
select 4, 3, 25, NULL union all
select 5, 3, 20, NULL union all
select 6, 2, 10, 130 union all
select 7, 3, 9, NULL

----更新
UPDATE a SET fAmount =
(select sum(case when fType = 1 or fType = 2 then fQty when fType = 3 then -fQty else 0 end)
from @t where noid <= a.noid)
FROM @t as a WHERE fType = 3
----查看
select * from @t

/*结果
noid fType fQty fAmount
----------- ----------- ----------- -----------
1 1 30 300
2 2 20 200
3 2 30 310
4 3 25 55
5 3 20 35
6 2 10 130
7 3 9 36
*/
xuehf 2007-06-28
  • 打赏
  • 举报
回复
快来帮忙呀
nic7968 2007-06-28
  • 打赏
  • 举报
回复
ding
一、 适用对象: 里诺仓库管理软件是一款通用性极强的仓库及货物管理软件,软件适用于食品、服装、保健品、电子、贸易、物资、化妆品、电器等工业、商业、贸易领域的企业。界面如下图所示: 二、 软件特点: •美观简便的操作界面:直观的图形化操作界面,以及丰富详细的操作提示,帮助您高效快捷的完成仓储物资管理工作; •高效强大的查询工具:系统提供多种查询方式来帮助您快速找到所需要的资料。无论是使用预制条件还是临时的高级组合查找,都能够让您省心省力; •安全可靠的数据管理:系统提供备份措施来保障您的数据安全存储,让您高枕无忧; •实用的数据共享功能:系统支持将仓储物资数据直接导出为Excel电子表格、Txt 文本文件、Html网页文件等多种数据格式,进一步让您方便有效的处理仓储物资数据。 特点概述: 1、软件界面直观、操作简单,支持全键盘操作; 2、软件支持入库、出库、退库、调库、借出、归还、盘点等多项货物操作流程; 3、软件支持固定单价,加权平均价和移动加权平均法计算成本; 4、软件支持多仓库管理; 5、强大的数据导入功能,支持从Excel导入货品和来往单位资料,减小您的期初工作量,各种数据也可以方便转换为Excel数据格式。 6、软件提供了完备的帐务系统,可以随时查询或打印月记帐、日记帐。多方位为企业经营决策提供服务; 7、货品和来往单位资料支持树形分类管理; 8、支持自定义单据打印格式,可以任意更换打印机及纸张类型,支持单据套打。 9、支持自定义出入库类型; 10、软件支持小数点位数自定义,可以设置单价为0-8位小数; 11、能自动对库存超限的商品报警,多种报表功输出功能,让你的仓库管理工作轻松自如。 12、软件操作界面友好、灵活、易操作 本店所售软件已经完美去除软件所有暗桩,绝对不会出现单据数量限制和软件到期问题,绝对不会出现任何功能上的限制,堪称最完美版本. 本店提供的所有软件均进行过相关的测试,亲们大可放心使用。附有注册机或补丁可能会被杀毒软件拦截删除,在解压或运行注册机、补丁的同时请勿必把杀毒软件暂且关闭。 请买家在购买前仔细浏览、查看本说明及商品界面及相关介绍文档,我们保证程序运行与之完全一致并运行流畅。 特别声明 · 本店软件均经过店主精心测试,原版注册,永久使用,请放心购买 · 本店提供全方位的技术指导、安装调试等,具体软件使用方法请看软件内的帮助文件 · 本店所出售的软件,均保证软件本身的可用性,不承担误删除、误操作引起的文件丢失 · 本店软件一经销售,不接受任何以软件功能及使用习惯上等一切买家自身原因的理由退换货操作 · 本店所售软件仅供大家学习、交流为目的,勿用于商业用途,请支持原版 · 本店所收低廉费用仅表示搜寻软件及为买家提供咨询服务费用,并不代表软件本身价值 · 本店所列软件商品若侵犯了您的权益,请联系店主,店主将立即删除

34,597

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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