ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 530|回复: 6

[求助] SQL求助(如何根库存数量核销生产订单数量?)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-4-14 14:18 | 显示全部楼层 |阅读模式
image.png     image.png

    计划利用数据库等相关方法编一个生产计划管理工具,第一个问题就是如何根据现有的订单数量。先将库存里面的数量核销掉之后,得到接下来需要生产的数量?
    如上表,第一个为库存表,主要就是物料号码、数量,第二个表是订单表,有订单编号、物料号码、生产考核日期,如何对“生产数量”进行计算?
    目前是手工计算的,计算的逻辑是:按物料号码、生产考核日期进行排序,对于物料号码相同的,按生产考核日期升序排序,逐个消耗掉库存后,就是接下来需要生产的数量。
    如何通过SQL语句执行此计算,然后将得到的结果记录到数据表中呢?

库存核销.rar

10.3 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2021-4-14 14:29 | 显示全部楼层
这个可能vba实现更加方便点

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-14 14:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
无敌小猪猪 发表于 2021-4-14 14:29
这个可能vba实现更加方便点

VBA的方法我自己摸索过,通过遍历逐行可以实现,现在是数据都是存在access数据库中,若要这么计算的话,还是需要通过从access中取数据,然后计算,然后在将结果反存到数据库表中!要是可以直接在数据库中执行,就比较方便了

TA的精华主题

TA的得分主题

发表于 2021-4-14 16:05 | 显示全部楼层
你可以sql结合vba试下,先用sql提取信息,然后再结合vba运算?

TA的精华主题

TA的得分主题

发表于 2021-4-15 09:40 | 显示全部楼层
你试试
    Sql1 = "select 物料号码,sum(数量) as 库 from [库存表$] group by 物料号码"
    Sql2 = "select 物料号码,sum(数量) as 销 from [订单表$] group by 物料号码"
    sql3 = "select a.物料号码 as 物料,iif((a.销-b.库),(a.销-b.库),a.销) as 需求 from (" & Sql2 & ") a left join (" & Sql1 & ") b on a.物料号码=b.物料号码"
    Sql = "select 物料,iif(需求 <0,需求=0,需求) from (" & sql3 & ")"

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-15 13:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
donghui2363 发表于 2021-4-15 09:40
你试试
    Sql1 = "select 物料号码,sum(数量) as 库 from [库存表$] group by 物料号码"
    Sql2 = "s ...

这个有点问题的,比如A0010这个,需要
2021/4/12        4
2021/4/30        210

而按你上面的,只能体现总共需要生产214(4+210)个,是否可以区分一下日期,分开呢?

TA的精华主题

TA的得分主题

发表于 2021-4-16 05:59 来自手机 | 显示全部楼层
lanyf 发表于 2021-4-15 13:48
这个有点问题的,比如A0010这个,需要
2021/4/12        4
2021/4/30        210

逐个消耗掉库存后,就是接下来需要生产的数量

这个 逐个 不是 sql的长项,不太容易实现。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 07:07 , Processed in 0.040030 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表