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

MySQL Discussion :

Erreur syntaxique SQL


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 27
    Par défaut Erreur syntaxique SQL
    Je souhaite corriger cette requete SQL ou il y a une erreur syntaxique

    Select * from pointage where id_tjm not in (select id_tjm from TJM T inner join Commande C on (T.id_tjm = C.id_tjm) INNER JOIN Facture F ON (F.id_cde = C.id_cde));

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 679
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Vous devriez communiquer votre message d'erreur !
    Cela dit, plusieurs remarques :
    • Ne JAMAIS faire de select *, c'est le plus souvent inutile, ça pénalise les perfs et le résultat de votre requête sera impacté si le DDL de la table évolue

    • Un minimum de présentation de la requête ne nuit pas, penez aux maintenances

    • Si les parenthèses sont inutiles et bien... ne les mettez pas

    • Pour un test d'existence, il faut utiliser une requête EXISTS plutôt qu'une requete IN(...)


    Voici une requête qui devrait vous satisfaire, et qui tient compte des remarques ci-dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Select col1, col2, ..., coln
    from pointage P
    where not exists
         (select id_tjm 
          from TJM T 
          inner join Commande C 
             on T.id_tjm = C.id_tjm
          INNER JOIN Facture F 
             ON F.id_cde = C.id_cde
          where T.id_tjm = P.id_tjm
         );

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 27
    Par défaut
    Bonjour,

    J'ai essayé avec votre requête mais je reçois le même message d'erreur :

    "Erreur de syntaxe dans l'expression <<not exists (select id_tjm from TJM T inner join Commande C on T.id_tjm = C.id_tjm INNER JOIN Facture F ON F.id_cde = C.id_cde where T.id_tjm = P.id_tjm);>>"

    au fait moi je souhaite supprimer les enregistrement dans pointage mais qui n'existe pas dans facture, mais je n'y arrive pas

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 679
    Billets dans le blog
    10
    Par défaut
    J'avais oublié un alias, corrigez comme cici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [...]where not exists
         (select T.id_tjm 
          from TJM T [...]
    Quel est votre SGBD ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 27
    Par défaut
    Re, je tiens tout d'abord à vous remercier de votre réactivité,

    J'ai corrigé avec la nouvelle modif mais j'ai toujours le même message d'erreur,

    Je travail sous access,

    Merci

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 679
    Billets dans le blog
    10
    Par défaut
    Je ne vois pas d'erreur de syntaxe, peut être y a -t- il une erreur sur un nom de table ou un nom de colonne, vérifiez bien tous les noms (y compris les majuscules/minuscules, accents...)

Discussions similaires

  1. Afficher le détail des erreurs syntaxiques
    Par Laurent Birckel dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 22/03/2005, 18h44
  2. Réponses: 10
    Dernier message: 26/01/2005, 20h48
  3. [CE10 Pro] Erreur Connexion SQL pour etats publiés
    Par L.nico dans le forum Connectivité
    Réponses: 1
    Dernier message: 09/12/2004, 18h16
  4. catch des erreurs dans SQL+
    Par lalystar dans le forum Oracle
    Réponses: 2
    Dernier message: 21/09/2004, 16h17
  5. message d'erreur "Microsoft SQL-DMO"
    Par tachi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/08/2004, 12h47

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