在erp或進銷存軟體設計時,常用常用需要知道某時的期初庫存及期末庫存,因而需要記錄庫存的實時進出。
設計乙個表用於記錄庫存的實時進出。
--庫存表,用於存放當前庫存.
if object_id ('storage',n'u') is not null
drop table storage
create table storage
( id int identity(1,1),
productid int not null,--物品id
storageid int not null,--倉庫id
amount decimal(8,2)--當前數量
primary key(productid,storageid)
)--庫存進出記錄表,用於記錄倉庫的進出流水帳
if object_id ('storageinout',n'u') is not null
drop table storageinout
create table storageinout
(id int identity(1,1),
inoutdate datetime default getdate() not null,--進出時間
productid int not null,--物品id
storageid int not null,--倉庫id
storagein decimal(8,2) default 0 not null,--進庫數量
storageout decimal(8,2) default 0 not null,--出庫數量
amount decimal(8,2) default 0 not null--結存數量
)再在庫存表storage上建立乙個觸發器。用於把進出資料寫入storageinout表中.
if object_id ('storagelog','tr') is not null
drop trigger storagelog
gocreate trigger storagelog
on storage
after insert, update
as declare @productid int,
@storageid int,
@old decimal(8,2),
@new decimal(8,2),
@amount decimal(8,2)
select @old=amount from deleted
select @productid=productid,@storageid=storageid,@new=amount from inserted
select @amount=amount from storageinout where id = (select max(id)
from storageinout where productid=@productid and storageid=@storageid)
if @amount is null
set @amount=0
if @old is not null
begin
if @new >@old
begin
insert storageinout(productid, storageid,storagein, storageout,amount)
values(@productid,@storageid,@new-@old,0,@amount+@new-@old)
end else
begin
insert storageinout(productid, storageid,storagein, storageout,amount)
values(@productid,@storageid,0, @old-@new,@amount-@old+@new)
endend else
begin
insert storageinout(productid, storageid,storagein, storageout,amount)
values(@productid,@storageid,@new, 0,@amount+@new)
endgo
取某時段的期初庫存量:
select * from storageinout where id=(select max(id) from storageinout where inoutdate<'2012-10-11 22:36:44')
取某時段的出入庫數量:
select sum(storageout) '出庫量',sum(storagein) 入庫量 where where inoutdate between '2012-10-11 22:36:44' and '2012-12 :23:59:59'
取某時段結存(期末)庫存量:
select * from storageinout where id=(select max(id) from storageinout where between '2012-10-11 22:36:44' and '2012-12 :23:59:59')
這樣就可以查詢到任何時間的出入庫數量及結存數,對移動盤點,庫存管理就方便多了.
ERP與進銷存軟體的區別
進銷存與erp互補,屬於兩個根本不同的範疇。它們的目的不同 涉及領域和物件不同 業務性質不同 過程不同,需要的解決方案結構和系統實施方法也盡有不同。儘管在實施erp的過程中也要解決許多非常困難的問題,但基本還是企業內部的問題 而在實施進銷存的過程中,除去相關企業內部問題需要解決之外,人們還會面臨誰是...
進銷存軟體的價值
進銷存軟體的價值到底有多少?相信我們每個人都想花最少的錢去買東西,但我們又何知該產品的 和價值所在呢?在這裡我們來了解一下 中小企業本身非常看重公司的成本開銷,在企業資訊化程序中,我相信不少中小企業一直在糾結這個問題 花幾百上千元購買一套進銷存倉庫管理軟體是否值得?特別是管理軟體是乙個看不見摸不著的...
進銷存設計中的庫存設計
進銷存資料庫設計,要調整庫存的功能,庫存數總表該怎麼設計2009 03 08 09 01 方案一 將出入庫單據表和庫存表分開,當出入庫單據被確認時,修改庫存表,庫存表中總是只保留當前的庫存資料。這樣庫存表設計大致如下 庫存表 倉庫編碼 商品編碼 庫存屬性 庫存餘額 庫存 等 出入庫表 出入單編號,出...