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 № 1With 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