古詩詞大全網 - 藝術簽名 - 如何使用sql商品庫存清單

如何使用sql商品庫存清單

-明細分類賬數據

創建表tb(

ID int標識主鍵,

項目varchar (10),-產品編號

Quantityint,-交易數量

Flagbit,-交易標誌,1代表入庫,0代表出庫,可以有效區分退貨(負數)。

日期日期時間)-交易日期

插入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 '

聯合所有選擇' 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 '

工會全選' 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 '抄送',100,1,' 2005-1-7 '

-查詢時間段定義

聲明@dt1日期時間,@dt2日期時間

選擇@dt1='2005-2-1 ',@dt2='2005-2-10 '

-查詢

-統計時間段內沒有的數據量(如果該查詢不需要,則刪除該查詢)

選擇項目,

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

期初=總和(當Flag=1時,則數量否則-數量結束),

[IN]=0,

[IN_Retrun]=0,

[OUT]=0,

[OUT_Return]=0,

余額=總和(當Flag=1時,則數量否則-數量結束)

來自tb a

其中日期& lt@dt1且不存在(

SELECT * FROM tb其中Item=a .項目和日期& gt@dt1和日期& ltDATEADD(Day,1,@dt2))

按項目分組

聯合所有

-特定時期內的交易數據。

選擇項目,

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

Opening=ISNULL(選擇SUM(當Flag=1時,則數量為ELSE-數量結束)

從tb開始,其中Item=a .項目和日期& lt分鐘(日期))、0),

[IN]= is null(SUM(Flag = 1且Quantity & gt0則數量結束),0),

[IN _ Retrun]= is null(SUM(Flag = 1且Quantity & lt0 THEN-數量結束),0),

[OUT]=ISNULL(SUM(當Flag=0且Quantity & gt0則數量結束),0),

[OUT _ Return]= is null(SUM(Flag = 0且Quantity & lt0 THEN-數量結束),0),

Balance=ISNULL(選擇SUM(如果Flag=1,則數量為ELSE-數量結束)

從tb開始,其中Item=a .項目和日期& lt=MAX(日期),0)

來自tb a

其中日期& gt=@dt1和日期& ltDATEADD(Day,1,@dt2)

GROUP BY CONVERT(字符(10),日期,120),項目

按項目、日期排序

/*-結果

項目日期期初IN _ Retrun OUT OUT _ Return余額

- - - - - - - -

aa 2005-02-01100 180 55 0225

aa 2005-02-02 225 200 10 0 415

aa 2005-02-03 465438

bb 2005-02-02 095 00 95

bb 2005-02-03

30 0 15 0 20 35

35 100 0 135

cc 2005-02-01 100 0 0 0 100

- */

Itjob祝妳成功。