怎么用sql商品库存明细表

怎么用sql商品库存明细表,第1张

示例如下:

--明细帐数据

CREATE TABLE tb(

ID int IDENTITY PRIMARY KEY,

Item varchar(10), --产品编号

Quantity int, --交易数量

Flag bit, --交易标志,1代表入库,0代表出库,这样可以有效区分退货(负数)

Date datetime) --交易日期

INSERT tb SELECT 'aa',100,1,'2005-1-1'

UNION ALL SELECT 'aa',90 ,1,'2005-2-1'

UNION ALL SELECT 'aa',55 ,0,'2005-2-1'

UNION ALL SELECT 'aa',-10,1,'2005-2-2'

UNION ALL SELECT 'aa',-5 ,0,'2005-2-3'

UNION ALL SELECT 'aa',200,1,'2005-2-2'

UNION ALL SELECT 'aa',90 ,1,'2005-2-1'

UNION ALL SELECT 'bb',95 ,1,'2005-2-2'

UNION ALL SELECT 'bb',65 ,0,'2005-2-3'

UNION ALL SELECT 'bb',-15,1,'2005-2-5'

UNION ALL SELECT 'bb',-20,0,'2005-2-5'

UNION ALL SELECT 'bb',100,1,'2005-2-7'

UNION ALL SELECT 'cc',100,1,'2005-1-7'

GO

--查询时间段定义

DECLARE @dt1 datetime,@dt2 datetime

SELECT @dt1='2005-2-1',@dt2='2005-2-10'

--查询

--统计时间段内无发生额的数据(如果这个不是查询需要的,去掉这段查询)

SELECT Item,

Date=CONVERT(char(10),@dt1,120),

Opening=SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END),

[IN]=0,

[IN_Retrun]=0,

[OUT]=0,

[OUT_Return]=0,

Balance=SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END)

FROM tb a

WHERE Date<@dt1 AND NOT EXISTS(

SELECT FROM tb WHERE Item=aItem AND Date>@dt1 AND Date<DATEADD(Day,1,@dt2))

GROUP BY Item

UNION ALL

--指定时间段内有交易发生的数据

SELECT Item,

Date=CONVERT(char(10),Date,120),

Opening=ISNULL((SELECT SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END)

FROM tb WHERE Item=aItem AND Date<MIN(aDate)),0),

[IN]=ISNULL(SUM(CASE WHEN Flag=1 AND Quantity>0 THEN Quantity END),0),

[IN_Retrun]=ISNULL(SUM(CASE WHEN Flag=1 AND Quantity<0 THEN -Quantity END),0),

[OUT]=ISNULL(SUM(CASE WHEN Flag=0 AND Quantity>0 THEN Quantity END),0),

[OUT_Return]=ISNULL(SUM(CASE WHEN Flag=0 AND Quantity<0 THEN -Quantity END),0),

Balance=ISNULL((SELECT SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END)

FROM tb WHERE Item=aItem AND Date<=MAX(aDate)),0)

FROM tb a

WHERE Date>=@dt1 AND Date<DATEADD(Day,1,@dt2)

GROUP BY CONVERT(char(10),Date,120),Item

ORDER BY Item,Date

/--结果

Item Date Opening IN IN_Retrun OUT OUT_Return Balance

---------- ---------------- -------------- ----------- ---------------- ----------- ------------------- -----------

aa 2005-02-01 100 180 0 55 0 225

aa 2005-02-02 225 200 10 0 0 415

aa 2005-02-03 415 0 0 0 5 420

bb 2005-02-02 0 95 0 0 0 95

bb 2005-02-03 95 0 0 65 0 30

bb 2005-02-05 30 0 15 0 20 35

bb 2005-02-07 35 100 0 0 0 135

cc 2005-02-01 100 0 0 0 0 100

--/

模板已为你发送:

XXX公司商品进、销、存(原材料进、耗、存)及利润核算管理报表(系统),带库存警戒设置!xls (121K)

工业企业材料物资进耗存管理报表系统(实例模板,内有报表 *** 作应用说明)xls

请注意查收,另发送相关资料若干,可参照应用

你应该是有如下的这些表和关系:

1、《商品目录表》或者叫商品编码表:包括 商品ID 商品的名称、规格、计量单位……其他特征描述……还有最为重要的 商品代码……

2、《商品入库单》 包括:入库单ID、入库单编号、入库日期、入库性质、备注及入库检验负责人等等信息

3、《商品入库表》包括:入库单ID、 商品ID 、入库数量、金额、备注 等等

4、《商品出库单》 包括 出库单ID、出库单编号、出库日期、出库部门、备注及出库负责人等相关信息……

5、《商品出库表》包括 出库单ID、商品ID、出库数量、 金额 、备注等等

关系是 :

1、《商品目录表》中的 商品ID 分别包含《商品入库表》《商品出库表》中的 商品ID 的所有记录……

2、《商品入库单》 中的 入库单ID 包含 《商品入库表》中的 入库单ID 的所有记录……

3、《商品出库单》中的 出库单ID 包含 《商品出库表》中的 出库单ID 的 所有记录……

你的库存表,通过 《商品目录表》《商品入库表》、《商品出库表》等这些表格的查询获得……如果是分期报表的话 就连带《商品入库单》、《商品出库单》这两个表 通过对 入出库日期进行条件设置 来完成相应的查询……

不知道能否帮到你……这看上去 比你的复杂了些,但是 会记录得的更加详细 、复合一般数据库记录信息的 管用方法……

以上就是关于怎么用sql商品库存明细表全部的内容,包括:怎么用sql商品库存明细表、Excel库存表格和进销存表格、我想用access做一张库存表,一张入库表,一张出库表,如何建立关系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10180767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存