當前位置:首頁 » 編程語言 » 用sql統計各商品庫存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用sql統計各商品庫存

發布時間: 2022-12-29 22:25:28

① 怎麼用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語句 統計部分倉庫數量

  1. 指定要統計的倉庫名稱

    select count(數量) from (select * from tableName where 倉庫名稱 in ('倉1','倉2','倉3'));

  2. 不指定名稱

    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 大概就這意思,具體的參數自己修改修改就行了。