Bonjour a tous

j'ai un probleme avec la clause with que je n'arrive pas a utiliser.

j'ai une sous requete que j'appelle a 3 reprises dans ma requete principale.
la requete marche bien.

pour l'optimiser je voudrais donc utiliser le with, et d'apres mes recherches la syntaxe de ma requete me semble bonne :

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
WITH TabTemp(numprd, numnat, dateclot, numctrt)
AS 
(
	SELECT P.IDPRDT, P.IDNTCT, C.DATCLO, C.IDCTRT
	FROM AVPDTS AS P
	INNER JOIN AVCTRT AS C ON P.IDPRDT = C.IDPRDT
	WHERE C.REFCTR = '86900078'
	AND DATCLO IS NULL
)
 
SELECT *
FROM TabTemp
WHERE numnat = CASE (select count (*) from TabTemp)
		 WHEN 1 THEN numnat
		 WHEN 2 THEN (SELECT numnat FROM TabTemp WHERE numnat <> 3)
		 ELSE 0
	       END
Mais j'ai le message d'erreur suivant :
"Syntaxe incorrecte vers le mot clé 'WITH'."

Je ne comprends vraiment pas car il me semble que je respecte la syntaxe vue dans des exemples.

Si quelqu'un a une petite idée ca serait super cool

merci par avance a ceux qui se pencheront sur ce probleme.