/ / erreur de syntaxe lors de l'utilisation de «avec rollup» dans la procédure de stockage - sql, sql-server-2008

Erreur de syntaxe lors de l'utilisation de la procédure «with rollup» in store - sql, sql-server-2008

Je «m essaie pour la première fois d'écrire une procédure stockée dans SQL Server et les codes comme ci-dessous. Ici, lorsque j'ajoute« avec rollup »à la fin de la requête, il affiche l'erreur« syntaxe incorrecte près du mot clé avec "

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

Et essayé d'exécuter la procédure comme ci-dessous:

exec firstprocedure "20120501", "20120525"

Réponses:

2 pour la réponse № 1

With rollup doit venir avant le order by. C'est lié à la 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

De plus, vous éviterez tout un tas de problèmes si vous stockez et interrogez vos dates en utilisant le type de données de date