Menu

Syntaxe Incorrecte vers le mot clé 'WITH' [Résolu]

andyajram 115 Messages postés vendredi 24 mai 2013Date d'inscription 14 mai 2018 Dernière intervention - 13 mars 2018 à 15:43 - Dernière réponse : andyajram 115 Messages postés vendredi 24 mai 2013Date d'inscription 14 mai 2018 Dernière intervention
- 14 mars 2018 à 10:42
Bonjour, tout le monde j'ai une problème, quand j’exécute une requête sur SQL server 2014 elle marche bien mais sur SQL server 2005 ca me donne l'erreur Syntaxe incorrecte vers le mot clé 'WITH'.
voici ma requête:


WITH TMP AS (
SELECT INWI.Date ,
Equipe_Cad.MatBCC,
INWI.Matricule_FS,
Equipe_Cad.Employe,
Equipe_Cad.Equipe,Equipe_Cad.Societe,
Projet.Projet,
INWI.Quantite,
RIGHT('0' + INWI.Tps_Net, 9) C
FROM INWI
INNER JOIN Equipe_Cad ON INWI.Matricule_FS=Equipe_Cad .MatFS
INNER JOIN Projet ON Projet.EtapeTraitement='INWI_PREPAID'

WHERE INWI.Date = '02/03/2018'
)
SELECT Date ,
MatBCC AS Matricule_BCC,
Matricule_FS,Employe AS Nom,Equipe,Societe,
Projet,
CAST(SUM(Quantite)AS int)AS Quantite ,
SUM(CAST(LEFT(C, 2) AS DECIMAL(10,8)) +
CAST(SUBSTRING(C, 4, 2) AS DECIMAL(10,8)) / 60 +
CAST(SUBSTRING(C, 7, 2) AS DECIMAL(10,8)) / 3600) AS Temps_Effectif
FROM TMP
GROUP BY Date, MatBCC ,Matricule_FS,Employe ,Equipe,Projet,Societe


merci d'avance

Afficher la suite 

Votre réponse

3 réponses

jordane45 21429 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 juin 2018 Dernière intervention - 13 mars 2018 à 20:56
0
Merci
Bonjour

Comme indiqué dans la doc .. ne marche qu'à partir de 2008.
Commenter la réponse de jordane45
andyajram 115 Messages postés vendredi 24 mai 2013Date d'inscription 14 mai 2018 Dernière intervention - 13 mars 2018 à 21:00
0
Merci
C'est bon j'ai résolu le problème en changeant la requête comme ça :
  
SELECT
x.Date,
x.MatBCC AS Matricule_BCC,
x.Matricule_FS,x.Employe AS Nom,x.Equipe,x.Societe,
x.Projet,
CAST(SUM(x.Quantite)AS int)AS Quantite ,
SUM(CAST(LEFT(x.C, 2) AS DECIMAL(10,8)) +
CAST(SUBSTRING(x.C, 4, 2) AS DECIMAL(10,8)) / 60 +
CAST(SUBSTRING(x.C, 7, 2) AS DECIMAL(10,8)) / 3600) AS Temps_Effectif
FROM
(
SELECT
INWI.Date ,
Equipe_Cad.MatBCC,
INWI.Matricule_FS,
Equipe_Cad.Employe,
Equipe_Cad.Equipe,Equipe_Cad.Societe,
Projet.Projet,
INWI.Quantite,
RIGHT('0' + INWI.Tps_Net, 9) C
FROM
INWI
INNER JOIN
Equipe_Cad ON INWI.Matricule_FS = Equipe_Cad .MatFS
INNER JOIN
Projet ON Projet.EtapeTraitement = 'INWI_PREPAID'
WHERE
INWI.Date = '02/03/2018') AS x
GROUP BY
x.Date, x.MatBCC, x.Matricule_FS, x.Employe, x.Equipe, x.Projet, x.Societe
Commenter la réponse de andyajram
andyajram 115 Messages postés vendredi 24 mai 2013Date d'inscription 14 mai 2018 Dernière intervention - Modifié par andyajram le 14/03/2018 à 10:45
0
Merci
j'ai un autre problème s'il vous plaît, c'est quoi le type qui remplace time dans SQL 2005 parcequ'il n'accepte pas Time comme type quand je veux executer la requête?
 SELECT convert(datetime, convert(char(8), Date)) AS Date,E.MatBCC,C.Mat AS MatFS,E.Employe As Nom,E.Equipe,E.Societe,P.Projet, 
DATEDIFF(SECOND, 0, CAST(Temps AS time))/3600. As Temps_Effectif from Cadences C,Equipe_Cad E,Projet_Cad P
where C.Mat= E.MatFS AND C.EtapeTraitement= P.EtapeTraitement AND NOT (E.Equipe = 'Prep. CHQ' and P.Projet= 'PREPARATION CHQ')
AND NOT (E.Equipe = 'Prep. CIH' and P.Projet= 'PREPARATION CHQ') AND C.Date like '20180305'

group by C.Date,C.Mat,E.MatBCC,E.Employe ,E.Equipe,C.EtapeTraitement,C.Temps,P.Projet,E.Societe


le problème est dans DateDIFF(SECOND,0,CAST(Temps AS time))/3600.
Commenter la réponse de andyajram