① 怎么用sql商品库存明细表
--明细帐数据
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=a.Item 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=a.Item AND Date<MIN(a.Date)),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=a.Item AND Date<=MAX(a.Date)),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
--*/
itjob祝你成功
② 怎么用sql商品库存明细表
入库有 采购入库单(Pur),其他入库(QP),调拨入库单(DP)
出库有 销售出库单(Sa),其他出库单(QS),调拨出库单(DS)
还有一张库存初始化单据(CSH)
这几张表 根据物料ID(MaterialID),仓库ID(FWarehouseID)进行联合,实现先进先出法,调拨单只是修改相应单据的数量(采购入库单或库存初始化单
③ 怎么用sql 查询出商品的出入库以及当日库存
select 商品, 入库-出库 as '库存'
from(select 商品,sum(入库数量) as '入库'
from 商品入库表 group by 商品) tmp_tblrk
left join (select 商品,sum(入库数量) as '入库'
from 商品入库表 group by 商品) tmp_tblck on tmp_tblrk.商品=tmp_tblck.商品
④ SQL动态统计物料库存
输入的数据要做数据转换,转换为年月的格式,然后作为查询条件,再通过selet语句进行查询,最好写成存储过程。
⑤ 关于统计库存的sql语句 紧急求助
select wp_id ,rk_num
from kc_t
where wp_id=3
或者
select wp_id ,rk_num
from rk_t
where wp_id=3
都可以,上面是总共的入库数量,下面一个是入库数量
还有就是不知道你们的表定义的wp_id是什么格式,如果是文本格式,则需要写成wp_id='3'
⑥ SQL语句 统计部分仓库数量
指定要统计的仓库名称
select count(数量) from (select * from tableName where 仓库名称 in ('仓1','仓2','仓3'));
不指定名称
select count(数量) from tableName where rownum<=num; ps:num就是要查几个仓库,可以当参数传入, 上面的仓1 仓2 也可以当参数传入
⑦ 请问用sql,怎么在一条语句内查询上周库存、本周库存和总库存
SELECT
COALESCE ( SUM( CASE WHEN 日期 = 上周日期函数 THEN 单个库存 ELSE 0 END ), 0 ) AS 上周总库存,
COALESCE ( SUM( CASE WHEN 日期 = 本周日期函数 THEN 单个库存 ELSE 0 END ), 0 ) AS 本周总库存,
SUM(单个库存) AS 总库存
FROM
库存表
用case then 大概就这意思,具体的参数自己修改修改就行了。