多批次库存分配难题。

colin08 2011-06-25 09:58:02
大家好, 我想写一个库存分配的报表, 一点头绪都没有, 请大家帮帮忙。要求如下:

Table aa
item co order_qty shipped_qty balance_qty
A CO1 15 5 10
A CO2 15 0 15
A CO3 20 5 15
B CO1 20 10 10
B CO4 30 0 30
B CO5 3 0 3

Table bb
item lot inventory
A A01 21
A A02 3
B B01 32
B B03 12

想得到如下表。
item co order_qty shipped_qty balance_qty allocated lot
A CO1 15 5 10 10 A01
A CO2 15 0 15 11 A01
A CO2 15 0 15 3 A02
B CO1 20 10 10 10 B01
B CO4 30 0 30 22 B01
B CO4 30 0 30 8 B03
B CO5 3 0 3 3 B03


不知大家有什么好的思路, 请大家指教!
...全文
199 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cd731107 2011-06-26
  • 打赏
  • 举报
回复

--1.对aa表建立临时表#a,zsa字段用于表示累计数
select *,zsa=(select sum(balance_qty)
from (select *,id=(select count(*)
from aa as tb
where tb.item=aa.item
and tb.co<=aa.co)
from aa)
as tb1
where tb1.item=aa1.item and tb1.id<=aa1.id)
into #a
from
(
select *,id=(select count(*) from aa as tb where tb.item=aa.item and tb.co<=aa.co) from aa
) aa1

--1.对bb表建立临时表#b,zsb字段用于表示累计数
select *,zsb=(select sum(inventory)
from (select *,id=(select count(*)
from bb as tb
where tb.item=bb.item
and tb.lot<=bb.lot)
from bb)
as tb1
where tb1.item=bb1.item and tb1.id<=bb1.id)
into #b
from
(
select *,id=(select count(*) from bb as tb where tb.item=bb.item and tb.lot<=bb.lot) from bb
) bb1


--3.将#a和#b根据对应关系组合成临时表#c,数量字段allocated暂定为0
select a.*,b.inventory,b.zsb,allocated=0,b.lot--case when a.zsa<=b.zsb then a.zsa else a.balance_qty-a.zsa+b.zsb end
into #c
from #a a , #b b
where a.item=b.item
and
(
(a.zsa<=b.zsb
and not exists (select 1 from #b c where c.item=b.item and a.zsa<c.zsb and c.zsb<b.zsb))
or
(a.zsa>b.zsb
and not exists (select 1 from #a c where c.item=a.item and c.zsa>b.zsb and c.zsa<a.zsa))
)



--4.利用变量更新数量字段allocated
declare @sl1 int,@sl2 int
declare @a varchar(1),@b varchar(1)

update #c
set @a=isnull(@b,'A'),
@b=item,
@sl2=case when @a=item then isnull(@sl1,zsa-zsb) else 0 end,
@sl1=zsa-zsb,
allocated=case when @sl2<=0 and zsa<=zsb then balance_qty
when @sl2<=0 and zsa>zsb then -@sl2
when @sl2>0 and zsa>=zsb then inventory
when @sl2>0 and zsa<zsb then @sl2
end
--5.查询
select item,co,order_qty,shipped_qty,balance_qty,allocated,lot from #c

/*
item co order_qty shipped_qty balance_qty allocated lot
---- ---- ----------- ----------- ----------- ----------- ----
A CO1 15 5 10 10 A01
A CO2 15 0 15 11 A01
A CO2 15 0 15 3 A02
B CO1 20 10 10 10 B01
B CO4 30 0 30 22 B01
B CO4 30 0 30 8 B03
B CO5 3 0 3 3 B03

(所影响的行数为 7 行)
*/

--6.删除临时表
drop table #a,#b,#c
叶子 2011-06-25
  • 打赏
  • 举报
回复
叶子 2011-06-25
  • 打赏
  • 举报
回复
这两个表的主键是什么?
colin08 2011-06-25
  • 打赏
  • 举报
回复
没用过游标,能不能详细一点?先在这谢谢你了

item co order_qty shipped_qty balance_qty allocated lot
A CO1 15 5 10 10 A01
A CO2 15 0 15 11 A01
A CO2 15 0 15 3 A02
B CO1 20 10 10 10 B01
B CO4 30 0 30 22 B01
B CO4 30 0 30 8 B03
B CO5 3 0 3 3 B03
GoAwayZ 2011-06-25
  • 打赏
  • 举报
回复
用游标吧。
-晴天 2011-06-25
  • 打赏
  • 举报
回复
可以用递归算法实现.
智能仓储管理系统WMSFOR机器人全文共4页,当前为第1页。智能仓储管理系统WMSFOR机器人全文共4页,当前为第1页。智能仓储管理系统WMSFOR机器人 智能仓储管理系统WMSFOR机器人全文共4页,当前为第1页。 智能仓储管理系统WMSFOR机器人全文共4页,当前为第1页。 行业面临的问题 行业大多属于自动化程度高,多品种小批量生产模式,具有库存零部件繁多、制造过程复杂、涉及的生产单元众多等特点,相应的物流仓储系统也具有库存大、周转慢、配套困难、物流路径复杂等特征,同时要求装配精度高,大量的数据需要采集及追溯。   装配制造业仓储管理存在的问题主要表现在一下几个方面 物品堆放不整齐,无区位标识,查找物品较困难; 人工数据输入方式较多,易造成账、实不符;仓库数据更新基本由人公司输入,人为误输和漏输现象易发生,一旦输入错误信息,严重可能导致生产线停顿;数据输入方式的落后,也使材料库存准确性降低,造成盘点时发现实物和系统数据偏差较大; 不按库位摆放物料,或移动物料后,造成无法找到相关物料; 物料数据录入系统不及时,结果造成系统数据与实际脱节,影响ERP系统数据的准确性,最终影响到了生产计划的贯彻和执行(有信息但无实物或是无信息但有实物)。标识不统一、不规范,不是没有物料编码,就是物料名称不对,以致无法追查该物料的历史状况。 仓库建设落后、自动化程度低和出现资源闲置的现象; WMS主要功能模块 任务计划驱动AGV、堆垛机、自动分拣工装和智能立体库等装备,构建一个流动的零落地、零等待、零库存的智能物流体系,包括模块商可视、智能工装拣货、智能AGV配送、智能单元线、智能立体库,构建智慧物流为核心的柔性制造体系。 通过到产品的自动识别及跟踪,智能工装及智能AGV精准配送,自优化配送路径,每一台定制的产品能回答:"我应该被送到哪里" 、"哪辆服务车辆何时配送安装"等问题,成品自动入库,物找库,货找车;通过智能物流系统的四个智能机理,即信息的智能获取技术、智能传递技术、智能处理技术、智能运用技术,以物流管理为核心,实现物流过程中运输、存储、包装、装卸等环节的一体化和智能物流智能仓储管理系统WMSFOR机器人全文共4页,当前为第2页。智能仓储管理系统WMSFOR机器人全文共4页,当前为第2页。系统的层次化。 智能仓储管理系统WMSFOR机器人全文共4页,当前为第2页。 智能仓储管理系统WMSFOR机器人全文共4页,当前为第2页。 智能物流组成结构图 任务管理 对货物出入库业务以及搬运过程的管理,支持批次管理,物料追踪,其中包括正常业务流程的处理、异常流程处理、紧急任务处理。物料出入路径追踪、报警等图形化界面。 采用图形化库存管理技术 对库存、货位、存储区域的信息进行直观的图形化管理,库存情况及库内情况的实时显示。 统计查询 支持客户自定义统计查询,统计日报、月报、年报。数据Excel文本导入导出。 智能接口系统 通过定义独立于硬件平台、操作系统和编程语言的统一接口和通用的标准组件构建接口程序。物流信息管理系统可以保持独立运行模式,也可与底层设备、相关软件系统无缝集成。可将上级系统作为指挥中心,将其各种业务、数据解构同化为新松物流系统内部指令及数据定义。 数据采集系统 RFID是Radio Frequency Identification的缩写,即射频识别技术、一维及二维条形码技术。自主设计研发数据采集系统平台软件,智能仓储管理系统WMSFOR机器人全文共4页,当前为第3页。智能仓储管理系统WMSFOR机器人全文共4页,当前为第3页。开发RFID群读中间件、条码群读技术及中间件,集成各种信息采集设备,将搬运容器、人机操作站台统一科学编码,快速准确定位、快速高效数据采集及信息处理,即可单一物料容器路径追踪,也可对物料单品全程管理,实现敏捷的数据采集物料管理。 智能仓储管理系统WMSFOR机器人全文共4页,当前为第3页。 智能仓储管理系统WMSFOR机器人全文共4页,当前为第3页。 监控调度系统 自主研发物流专用组态软件,采用OPC技术用于过程控制,作为工业标准接口。实现设备图形化管理,集成视频监控系统,实时监控全局运行情况,动态显示设备运行状态、位置、故障报警等,并提供人工干预功能,开发移动终端报警业务。实现管理任务分解和路径优化,通过PROFINET工业以太网下达给设备控制系统,同时接收控制设备的完成或报警信息后反馈给物流管理系统。 无线终端及叉车导航系统 采用无线网络技术开发的手持移动系统与叉车导航系统,实现人工搬运的在线过程管理。实现物料信息的无线采集、全程跟踪。操作界面设计简洁明确,操作方便。对无线网络终端的连接实施有效管理,提高系统的安全性。 在传统的自动化库房管理基础上,实现自动化生产线的控制和管理,通过高度的流程配置,满足各个生产区

22,299

社区成员

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

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