IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Syntaxe Incorrecte vers le mot clé 'WITH' [2005]


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut Syntaxe Incorrecte vers le mot clé 'WITH'
    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:
    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
     
    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

  2. #2
    Invité
    Invité(e)
    Par défaut
    As-tu essayé avec un point-virgule devant le WITH ?

  3. #3
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    As-tu essayé avec un point-virgule devant le WITH ?
    oui j'ai essayé ca ne marche pas

    syntaxe incorrecte vers ';'.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ok, j'ai vérifié et les fonctions RIGHT et LEFT ont été introduites sur la version 2008... Donc sous 2005, ça doit planté à juste titre.
    https://docs.microsoft.com/en-us/sql...t-transact-sql

    Vous pouvez remplacer ça avec SUBSTRING

  5. #5
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    C'est bon j'ai résolu le problème en changeant la requête comme ça
    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
     
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur du type syntaxe incorrecte vers '='
    Par Djclo dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/11/2008, 10h03
  2. Syntaxe incorrecte vers ')'
    Par Nako_lito dans le forum Services Web
    Réponses: 2
    Dernier message: 16/06/2008, 11h31
  3. Syntaxe incorrecte vers le mot clé 'case'.
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/08/2007, 18h25
  4. Syntaxe incorrecte vers 'where'.
    Par lepeintre dans le forum ASP
    Réponses: 15
    Dernier message: 19/05/2005, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo