/******************************************************************************
存储过程名称: p_nw_star_qtxx_wstw
创建人 : 赵校辉
创建时间 : 2003-10-28 17:36:00
修改人 :
修改时间 :
修改说明 :
内容描述 : 网上提问与回答的存储过程( 包括添加、修改及删除 ).
版 本 : 2.0
*******************************************************************************/
存储过程名称: p_nw_star_qtxx_wstw
创建人 : 赵校辉
创建时间 : 2003-10-28 17:36:00
修改人 :
修改时间 :
修改说明 :
内容描述 : 网上提问与回答的存储过程( 包括添加、修改及删除 ).
版 本 : 2.0
*******************************************************************************/
DinFinWarrant
结构如下
[date] datetime 明细账日期
[no] varchar(50)明细账编号
summary varchar(50)明细账摘要
subject1 varchar(50)借方科目名称
subject2 varchar(50)贷方科目名称
money float 金额
id bigint 唯一标识
--其他不相关列略
结果集举例
2003-9-2 ,3 购海鲜付款 应付帐款\王老五 银行存款 18117.1
@subject nvarchar(50), --加上参数说明
@StartDate varchar(10) ,
@EndDate varchar(10)
AS
/*--存储过程说明:
过程名称:DetailsDebt
功 能:得到明细账
执行结果:返回结果为区间明细账
修改时间:16:53 2004-1-31
作 者:
--*/
SELECT a.* --尽量写出字段列表,而不是*
FROM(
SELECT
--日期
[date],
--编号,忽略编号中的空格
CASE substring([no],1,2) WHEN ' ,' then substring([no],3,10) END as [no],
--摘要
summary,
--对方科目
CASE subject1 WHEN @subject THEN '' ELSE subject1 END +
CASE subject2 WHEN @subject THEN '' ELSE subject2 END AS subject,
--借方金额
CASE subject1 WHEN @subject THEN Money ELSE null END AS Money1,
--贷方金额
CASE subject2 WHEN @subject THEN Money ELSE null END AS Money2
FROM DinFinWarrant
WHERE ((subject1 = @subject ) OR
(subject2 = @subject )) and [date] between @StartDate and @EndDate) AS a
--根据日期和编号排序
order by a.date,a.no
GO
另
/*--存储过程说明:
过程名称:DetailsDebt
功 能:得到明细账
执行结果:返回结果为区间明细账
修改时间:16:53 2004-1-31
作 者:
--*/为什么用--?
as
.../*--查询处理方法1
select * from 表 ...
--*//*--查询处理方法2
select * from 表 ...
--*/...
go如果我要存储过程执行指定的代码.只需要将/*--前加上--,这段代码就可以执行了.