- 爱易网页
-
MSSQL教程
- 存储过程出错,不能得到正确的结果?解决方法
日期:2014-05-18 浏览次数:20702 次
存储过程出错,不能得到正确的结果?
现有一存储过程,如下:
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[sp_Rpt_04] ') and OBJECTPROPERTY(id, N 'IsProcedure ') = 4)
drop procedure [dbo].[sp_Rpt_04]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
create procedure sp_Rpt_04
@cust varchar(255),
@dates datetime,
@datee datetime
as
set nocount on
if @dates= ' '
set @dates= '1900-01-01 '
if @datee= ' '
set @datee= '2010-01-01 '
create table #tmp1
(
fcust varchar(255), --客户名称
fname1 varchar(255),--商品名称
fname2 varchar(255),--计量单位
fsum decimal(28,0),--发出数量
famount decimal(28,0)--金额
)
insert into #tmp1 (fcust,fname1,fname2,fsum,famount)
SELECT
t5.fname as '客户名称 ',
t3.fname as '商品名称 ',
t4.FName AS '计量单位 ',
sum(t2.fqty) as '发出数量 ',
sum(t2.famount) as '金额 '
FROM ICStockBill t1,ICStockBillentry t2,t_ICItem t3,t_MeasureUnit t4,t_item t5
WHERE t1.FInterID=t2.FInterID
AND t2.FItemID=t3.FItemID
AND t4.FItemID=t3.FUnitID
AND t1.ftrantype=21
and t1.fsupplyid=t5.fitemid
AND t1.fdate > =@dates and t1.fdate <=@datee
and t5.fname like '% ' + @Cust + '% '
GROUP BY t3.fname,t4.fname,t5.fname
select
fcust as '客户名称 ',
fname1 as '商品名称 ',
fname2 as '计量单位 ',
sum(fsum) as '发出数量 ',
sum(famount) as '总金额 '
from #tmp1
group by fcust,fname1,fname2,fsum,famount
Drop Table #tmp1
SET NOCOUNT OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
执行后再重新执行时提示:服务器: 消息 2714,级别 16,状态 5,过程 sp_Rpt_04,行 53
数据库中已存在名为 'sp_Rpt_04 ' 的对象。
而且我查询得到的结果是按客户来汇总数量和金额,但是现在没有得到这个结果。
希望高手指点,非常感谢!
解决后立刻揭贴!
------解决方案--------------------
最前面那个语句改改试试!
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'sp_Rpt_04 ' AND type = 'P ')
DROP PROCEDURE sp_Rpt_04
GO
------解决方案--------------------