Je suis en train de faire un procedure stocker que voici

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
CREATE PROCEDURE [dbo].[psListeAnnonceResume] 
	@strEmailClient		VARCHAR(100),
	@iOrderBy		TINYINT
 
AS
 
SELECT   top 10  	dbo.tblAnnonce.PK_Annonce, 
			dbo.tblAnnonce.strTitreAnnonce, 
			dbo.tblAnnonce.curPriceAnnonce, 
			dbo.tblAnnonce.dteAjoutAnnonce, 
			dbo.tblAnnonce.dteLastUpdateAnnonce, 
			autodb.tblCodePostal.strVilleCodePostal,
			autodb.tblCodePostal.decLatitudeCodePostal, 
			autodb.tblCodePostal.decLongitudeCodePostal,
			tblLast.dteLastView
FROM         dbo.tblAnnonce 
	LEFT OUTER JOIN
                      (SELECT * 
		FROM dbo.tblAnnonceClientLastView 
		WHERE FK_Client = (SELECT PK_CLIENT
					FROM dbo.tblClient
					WHERE strEmailClient = @strEmailClient)) as tblLast ON dbo.tblAnnonce.PK_Annonce =tblLast.FK_Annonce 
	LEFT OUTER JOIN
                      autodb.tblCodePostal ON dbo.tblAnnonce.FK_CodePostal = autodb.tblCodePostal.PK_CodePostal
WHERE     (dbo.tblAnnonce.bVenduAnnonce = 0) AND (dbo.tblAnnonce.bDeleteAnnonce = 0) AND (dbo.tblAnnonce.bActiveAnnonce = 1)
ORDER BY CASE	 WHEN @iOrderBy = 1 THEN dbo.tblAnnonce.dteAjoutAnnonce 
			WHEN @iOrderBy = 2 THEN dbo.tblAnnonce.curPriceAnnonce
			WHEN @iOrderBy = 3 THEN  dbo.tblAnnonce.dteLastUpdateAnnonce 
 
	END
GO
Elle fonctionne tres bien sauf l'orsque que j'envois 2 pour iOrderBy.
psListeAnnonceResume 'autoconsignation@gmail.com', 2
Je recois un message
Server: Msg 8115, Level 16, State 2, Procedure psListeAnnonceResume, Line 7
Arithmetic overflow error converting expression to data type datetime.
Jai essayer dans le SQL Quary Analyzer de refaire le meme sélect mais sans variable et tout fonctionne tres bien :S

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT   top 10  	dbo.tblAnnonce.PK_Annonce, 
			dbo.tblAnnonce.strTitreAnnonce, 
			dbo.tblAnnonce.curPriceAnnonce, 
			dbo.tblAnnonce.dteAjoutAnnonce, 
			dbo.tblAnnonce.dteLastUpdateAnnonce, 
			autodb.tblCodePostal.strVilleCodePostal,
			autodb.tblCodePostal.decLatitudeCodePostal, 
			autodb.tblCodePostal.decLongitudeCodePostal,
			tblLast.dteLastView
FROM         dbo.tblAnnonce 
	LEFT OUTER JOIN
                      (SELECT * 
		FROM dbo.tblAnnonceClientLastView 
		WHERE FK_Client = (SELECT PK_CLIENT
					FROM dbo.tblClient
					WHERE strEmailClient = 'autoconsignation@gmail.com')) as tblLast ON dbo.tblAnnonce.PK_Annonce =tblLast.FK_Annonce 
	LEFT OUTER JOIN
                      autodb.tblCodePostal ON dbo.tblAnnonce.FK_CodePostal = autodb.tblCodePostal.PK_CodePostal
WHERE     (dbo.tblAnnonce.bVenduAnnonce = 0) AND (dbo.tblAnnonce.bDeleteAnnonce = 0) AND (dbo.tblAnnonce.bActiveAnnonce = 1)
ORDER BY  dbo.tblAnnonce.curPriceAnnonce