首页 > Code > 设计数据库函数显示某仓库从某一时间开始的与某往来单位相关的所有凭证

设计数据库函数显示某仓库从某一时间开始的与某往来单位相关的所有凭证

2010年5月22日 发表评论 阅读评论 38 views

fnGetAllAccept_1

一、首先在数据库 Northwind 下建表

CREATE TABLE [dbo].[AcceptBlotter] ( -- 凭证头
 
[Acc_id] INT IDENTITY (1, 1) NOT NULL , -- 凭证内部 ID
 
[Acc_code] CHAR(10) NOT NULL , -- 凭证号码
 
[Wh_id] INT NULL , -- 仓库 ID
 
[Cust_id] INT NULL , -- 往来单位 ID
 
[Acc_date] datetime NOT NULL , -- 凭证日期
 
[Acc_type] SMALLINT NOT NULL , -- 凭证类型
 
[Acc_remark] VARCHAR(100) NULL -- 备注
 
) ON [PRIMARY]
 
CREATE TABLE [dbo].[AcceptItem] ( -- 凭证明细
 
[Acc_id] INT NOT NULL , -- 凭证内部 ID
 
[Accept_no] tinyint NOT NULL , -- 明细序号
 
[Pro_id] INT NOT NULL , -- 商品 ID
 
[Accept_price] money NOT NULL , -- 明细中的商品价格
 
[Accept_amount] NUMERIC(9, 2) NOT NULL , -- 商品数量
 
[Accept_money] money NOT NULL -- 合计金额
 
) ON [PRIMARY]

二、设计函数 fnGetAllAccept(@SDate datetime, @wh_id int, @cust_id) 显示某仓库从某一时间开始的与某往来单位相关的所有凭证

CREATE FUNCTION fnGetAllAccept(@SDate datetime, @wh_id INT, @cust_id INT)
RETURNS @acc_table TABLE(Acc_code CHAR(10) NOT NULL, 
			Cust_id INT NULL, 
			Acc_type SMALLINT NOT NULL, 
			Acc_remark VARCHAR(100) NULL)
AS
BEGIN
	INSERT @acc_table
	SELECT Acc_code, Cust_id, Acc_type, Acc_remark FROM AcceptBlotter
	WHERE Acc_date>=@SDate AND Wh_id=@wh_id AND Cust_id=@cust_id
	RETURN
END
分类: Code 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :cool: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O