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

Langage SQL Discussion :

Erreur de syntaxe MS Query


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 92
    Points
    92
    Par défaut Erreur de syntaxe MS Query
    Bonjour à tous,

    j'essaie de changer une requete générée par MS Query en remplacant le WHERE par un INNER JOIN

    Quand je valide la requête j'ai une erreur de syntaxe, voir image attachée

    Je ne maitrise pas SQL, je voudrais optimiser la requête suivante qui prend 15 min, il y a 158000 enreg dans la table DOSSIERS et 135000 dans FICHESSTATS, la requete doit normalement retourner 2000 lignes

    je ne comprends pas pourquoi c'est si long

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DOSSIERS.CodeClientComm, DOSSIERS.Numero, FICHESSTATS.NbPages, FICHESSTATS.numDossLong
    FROM DOSSIERS DOSSIERS, FICHESSTATS FICHESSTATS
    WHERE FICHESSTATS.numDossLong = DOSSIERS.Numero AND ((DOSSIERS.CodeClientComm='DUPONT'))
    Je requete une base 4D 2003 à partir d'Excel 2003, sur Win XP SP3 en passant par un driver ODBC
    Images attachées Images attachées  

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 878
    Points : 53 054
    Points
    53 054
    Billets dans le blog
    6
    Par défaut
    LES IHM comme MSQUery sont d'une incoryable stupidité. On ne fait des requête SQL propre avec de tels outils aussi merdiques.

    Ouvrez l'éditeur SQL de Management Studio et écrivez la comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT D.CodeClientComm, D.Numero, F.NbPages, F.numDossLong
    FROM   DOSSIERS D
           INNER JOIN FICHESSTATS F
                 ON F.numDossLong = D.Numero
    WHERE  D.CodeClientComm='DUPONT'
    Si vous voulez la rendre performante, il faut y mettre des index. Placez les index suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE INDEX X111 ON DOSSIERS (CodeClientComm, Numero);
    CREATE INDEX X222 ON FICHESSTATS (numDossLong, NbPages);
    Constatez le gain de performance. Je dirais entre 100 et 1000 fois plus vite !

    A +

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 92
    Points
    92
    Par défaut
    OK merci

    je vais voir si Excel 2003 veut bien d'un autre requeteur que MS Query (je doute)

    j'ai deja des index sur les champs CodeClientComm, Numero, numDossLong

    mais pas d'index sur NbPages, est-ce vraiment utile sur ce champ ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 878
    Points : 53 054
    Points
    53 054
    Billets dans le blog
    6
    Par défaut
    Prenez SQL Server Management Studio Express (gratuit)
    Installez un serveur lié avec 4D par odbc
    Faîtes vos requêtes sous forme textuelles avec cet outil dans une fenêtre d'édition de requête en tapant du SQL.

    A +

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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