2012-07-30 79 views
0

我第一次尝试在sql server中编写存储过程并使用以下代码。在这里,当我添加“与汇总”的查询结束,它显示错误“语法错误用关键字近”在存储过程中使用“with rollup”时出现语法错误

DROP PROCEDURE FIRSTPROCEDURE 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
CREATE PROCEDURE FIRSTPROCEDURE 
@startdate nchar(8), @enddate nchar(8) 
AS 
BEGIN 
SET NOCOUNT ON; 
select Date, SUM(QT1), SUM(QTY2), SUM(qTY3) FROM dbo.TABLE1 
where date between @startdate and @enddate 
group by Date 
order by Date 
WITH ROLLUP 
END 
GO 

并试图执行如下的过程:

exec firstprocedure '20120501', '20120525' 

回答

2

With rollup需要在order by之前。它涉及到group by

select Date, SUM(QT1), SUM(QTY2), SUM(qTY3) FROM dbo.TABLE1 
where date between @startdate and @enddate 
group by Date WITH ROLLUP 
order by Date 

而且,你会避免一大堆的问题,如果您存储和使用日期数据类型

查询您的日期