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 :

Probleme de syntax avec SQL


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Probleme de syntax avec SQL
    Bonjour à tous,

    J'ai un soucis avec un code SQL que je viens de créer, (je ne suis pas du tout informaticien, je suis chimiste, et c'est pourquoi j'ai besoin de vous)

    J'ai trois tableaux, (c3bd0, hd0 et c3bhd0) chacun de ces tableaux comportant les colonnes suivantes : mz_c3b, zc3b et Trc3b pour le tableau c3bd0, mz_c3bh, zc3bh et Trc3bh pour le tableau c3bhd0 et mz_h, zh et Trh pour le tableau hd0

    J'aimerai que mon code SQL me selectionne que les mz_c3bh spécifiques au tableau c3bhd0 (En effet la majorité des valeurs (float) presentent dans la colonne mz_c3bh de la table c3bhd0 sont égales (ou quasi égales) soient aux valeurs presentent dans mz_c3b de la table c3bd0 ou soient aux valeurs presentent dans la colonne mz_h de la table hd0. Or celles-ci ne m'interresse pas). Les valeurs de mz_c3bh spécifiques seront donc celles qui NE repondront PAS aux conditions suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (mzc3bh- mzc3b)/(mzc3bh)) <= ABS(5) 
     
    (mzc3bh- mzh)/(mzc3bh)) <= ABS(5) 
     
    zc3bh = zc3b
     
    zc3bh = zh
     
    (Trc3bh <= (Trc3b + 0.2) AND Trc3bh >= (Trc3b - 0.2) 
     
    (Trc3bh <= (Trh + 0.2) AND Trc3bh >= (Trh - 0.2)

    J'ai écrit le code de la façon suivante:

    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
     
    DELETE
     
    FROM c3bhd0,c3bd0,hd0
     
    WHERE (((c3bhd0.mz_c3bh - c3bd0.mz_c3b) / (c3bhd0.mz_c3bh)) <= ABS(5)
    AND ((c3bhd0.mz_c3bh - hd0.mz_h) / (c3bhd0.mz_c3bh)) <= ABS(5))
     
    AND 
     
    zc3bh = zc3b
     
    AND 
     
    (Trc3bh <= (Trc3b + 0.2)
    AND Trc3bh >= (Trc3b - 0.2))
     
    AND 
     
    (Trc3bh <= (Trch + 0.2)
    AND Trc3bh >= (Trh - 0.2))
     
    ;
    Ce code peut-il repondre à ma problématique? (je suis sous windows XP, je ne sais pas si c'est important)

    Quand je lance ce code il me met:

    >[Error] Script lines: 1-24 -------------------------
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (((c3bhd0.mz_c3bh - c3bd0.mz_c3b) / (c3bhd0.mz_c3bh)) <= ABS(5)
    AND ((c3bh' at line 5 

    Warnings: --->
    W (1): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (((c3bhd0.mz_c3bh - c3bd0.mz_c3b) / (c3bhd0.mz_c3bh)) <= ABS(5)
    AND ((c3bh' at line 5
    <---
    [Executed: 4/6/09 3:53:07 PM CEST ] [Execution: 0/ms]
    Merci d'avance pour vos réponses,

    J'ai vraiment besoin que ce code fonctionne, j'espere que vous pourrez m'aider,

    Bonne journée à tous

  2. #2
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    Bonjour,
    Tout d'abord vous êtes sur le forum MS SQL Server et non pas MySQL.
    Pour votre requete vous dites vouloir sélectionner (SELEct) or vous utilisez l'instruction DELETE (suppression).
    De même votre requete fait référence à plusieurs tables sans jointure. Je doute que cela soit réaliste.
    Je ne peux donc que vous encourrager à consulter un tutoriel SQL. Vous trouverez cela sur ce site sans aucun problème.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci, je vais regarder ça. Pour ce qui est du DELETE, je pense qu'il convient bien puisque je veux éliminer tout ce qui repond aux conditions que j'ai mentionné, pour ne garder que le reste. Je vais me renseigner sur ce que vous appeller jointure.

    Merci à vous,

    Bonne fin de journée

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Je ne sais pas comment ça se passe sous MySQL mais je doute que cela soit bien différent que sous SQL Server : une requête de modification (INSERT, UPDATE ou DELETE) ne peut s'effectuer que sur une seule table à la fois.

    Dès lors vous ne pouvez pas écrire DELETE FROM maTable1, maTable2, maTable3.

    Vous pouvez donc remplacer votre code par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DELETE FROM c3bhd0
    FROM c3bhd0
    INNER JOIN c3bd0 ON ...
    WHERE ((c3bhd0.mz_c3bh - c3bd0.mz_c3b) / (c3bhd0.mz_c3bh)) <= ABS(5)
     
     
    DELETE FROM c3bhd0
    FROM c3bhd0
    INNER JOIN hd0 ON ...
    WHERE ((c3bhd0.mz_c3bh - hd0.mz_h) / (c3bhd0.mz_c3bh)) <= ABS(5))
     
    DELETE FROM c3bhd0
    FROM c3bhd0
    JOIN c3bd0 ON c3bhd0.zc3bh = c3bd0.zc3b
    Les colonnes Trc3b et Trch ne correspondent à aucune des références que vous nous avez données. Néanmoins au lieu d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (Trc3bh <= (Trc3b + 0.2) AND Trc3bh >= (Trc3b - 0.2)
     
    (Trc3bh <= (Trch + 0.2) AND Trc3bh >= (Trh - 0.2)
    Vous pouvez écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Trc3bh BETWEEN Trc3b - 0.2 AND Trc3b + 0.2
     
    Trc3bh BETWEEN Trch - 0.2 AND Trh + 0.2
    Pour voir ce que sont les jointures, vous pouvez regarder le très bon article de SQLPro

    @++

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour votre reponse, j'essaie ca tout de suite, et je vous tiens au courant.

    Encore merci et bonne journée à vous

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2007, 22h34
  2. probleme de syntaxe avec $_SERVER['PHPSELF']
    Par Petogaz dans le forum Langage
    Réponses: 7
    Dernier message: 21/04/2006, 11h13
  3. probleme de taille avec sql server 2000
    Par sergio122 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 13/02/2006, 09h57
  4. [JSP][SQL]Probleme de guillemets avec SQL
    Par Drizzt [Drone38] dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/08/2005, 18h39
  5. Réponses: 7
    Dernier message: 18/07/2005, 13h42

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