寻数据存储的解决方案,高手请进来,在线等,如解决立即给分

lee_2020 lee_2020 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我需要用下面三张表建立一个数据存储,在Powerbuilder中调用,调用时传递过来一个调拨出库单编号,实现这样的功能,根据调拨出库单的编号在调拨出库单明细表中检索出这张出库单上的所有药品项,然后在 药品库存 表上把对应库房内的这种药品都检索出来,按照批次从小到大的顺序去扣库存数量,直到把调拨单上的数量扣完。因为同一库房同一药品如果是不同批号我是分开记录的,为了实现按照批次的先进先出。批次小的先出库,这个批次实际录入时会强制为060528这样的字样,其实就是一个日期拉。(所有库房的库存都放在这张库存表里,所以有库房这个数据项)




if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[药品库存]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[药品库存]
GO

CREATE TABLE [dbo].[药品库存] (
[编号] [int] IDENTITY (1, 1) NOT NULL ,
[药品编号] [int] NULL ,
[名称] [varchar] (150) COLLATE Chinese_PRC_CI_AS NULL ,
[批号] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[效期] [smalldatetime] NULL ,
[库存数量] [decimal](18, 2) NULL ,
[单位] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[库房] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[库存金额] [decimal](26, 2) NULL
) ON [PRIMARY]
GO



if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[调拨出库单主单]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[调拨出库单主单]
GO

CREATE TABLE [dbo].[调拨出库单主单] (
[调拨单编号] [varchar] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[日期] [smalldatetime] NULL ,
[源库房] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[目标库房] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[制单人] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[审核状态] [bit] NULL ,
[金额] [decimal](18, 2) NULL
) ON [PRIMARY]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[调拨出库单明细]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[调拨出库单明细]
GO

CREATE TABLE [dbo].[调拨出库单明细] (
[编号] [int] IDENTITY (1, 1) NOT NULL ,
[调拨单编号] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[药品编号] [int] NULL ,
[调拨数量] [decimal](12, 2) NULL ,
[单位] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[出库单价] [decimal](12, 2) NULL ,
[金额] [decimal](26, 2) NULL
) ON [PRIMARY]
GO



...全文
评论 4
收藏 已收藏
分享
返回顶部
lee_2020
应用实例 27,579 成员 68,540 内容