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 :

probleme la commande OR dans SQL


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 66
    Points : 48
    Points
    48
    Par défaut probleme la commande OR dans SQL
    je n'arrive pas à executer une requête mélangeant un and et un or


    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
     
    SELECT DISTINCT [T - Gestion des demandes].[No Dossier], PROJETS.Libelle_Projet, [T - Gestion des demandes].[Libellé Demande],[T - Gestion des demandes].[Date de la Demande], [T - Statut demandes].Statut_demande, [T - Gestion des demandes].[Libellé Réponse],[T - Gestion des demandes].Date_Fermeture
     
     FROM [T - Gestion des demandes], [T - Suivi Demandes], PROJETS, [T - Statut Demandes] WHERE [T - Gestion des demandes].[No Dossier] = [T - Suivi Demandes].[No Dossier] 
     
    AND [T - Gestion des demandes].Statut_demande = [T - Statut Demandes].[ID Item] AND [T - Gestion des demandes].[Code Origine Demande] = [T - Suivi Demandes].[Code Origine Demande] 
     
    AND PROJETS.Code_Projet= [T - Gestion des demandes].[Code Projet] 
     
    and [T - Gestion des demandes].[Libellé Demande] like '%pour%' 
     
    and [T - Gestion des demandes].[Libellé Réponse] like '%pour%' ;
    cela marche tres bien alors que si je fais cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT DISTINCT [T - Gestion des demandes].[No Dossier], PROJETS.Libelle_Projet, [T - Gestion des demandes].[Libellé Demande],[T - Gestion des demandes].[Date de la Demande], [T - Statut demandes].Statut_demande, [T - Gestion des demandes].[Libellé Réponse],[T - Gestion des demandes].Date_Fermeture
     
     FROM [T - Gestion des demandes], [T - Suivi Demandes], PROJETS, [T - Statut Demandes] WHERE [T - Gestion des demandes].[No Dossier] = [T - Suivi Demandes].[No Dossier] 
     
    AND [T - Gestion des demandes].Statut_demande = [T - Statut Demandes].[ID Item] AND [T - Gestion des demandes].[Code Origine Demande] = [T - Suivi Demandes].[Code Origine Demande] 
     
    AND PROJETS.Code_Projet= [T - Gestion des demandes].[Code Projet] 
     
    and [T - Gestion des demandes].[Libellé Demande] like '%pour%' 
     
    or [T - Gestion des demandes].[Libellé Réponse] like '%pour%' ;
    ma requête devient tres long à s'éxécuter pour qu'a la fin cela me donne un résultat vide


    pourriez vous maider SVP

    je vous remercie d'avance

  2. #2
    Membre habitué Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Points : 192
    Points
    192
    Par défaut
    Il faut parenthéser ! A quoi se rapporte ta clause OR ? A toutes les clauses AND ? A seulement le dernière clause OR ?

    Hiérarchise ta condition et ça devrait marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT DISTINCT [T - Gestion des demandes].[No Dossier], PROJETS.Libelle_Projet, [T - Gestion des demandes].[Libellé Demande],[T - Gestion des demandes].[Date de la Demande], [T - Statut demandes].Statut_demande, [T - Gestion des demandes].[Libellé Réponse],[T - Gestion des demandes].Date_Fermeture
     
     FROM [T - Gestion des demandes], [T - Suivi Demandes], PROJETS, [T - Statut Demandes] WHERE [T - Gestion des demandes].[No Dossier] = [T - Suivi Demandes].[No Dossier]
     
    AND [T - Gestion des demandes].Statut_demande = [T - Statut Demandes].[ID Item] AND [T - Gestion des demandes].[Code Origine Demande] = [T - Suivi Demandes].[Code Origine Demande]
     
    AND PROJETS.Code_Projet= [T - Gestion des demandes].[Code Projet]
     
    and ([T - Gestion des demandes].[Libellé Demande] like '%pour%'
     
    or [T - Gestion des demandes].[Libellé Réponse] like '%pour%') ;
    ++
    Ingénieur Génie Logiciel et Systèmes d'Information
    Management des Nouvelles Technologies

    Ecole Supérieure d'Ingénieurs de Luminy (ESIL), Marseille

  3. #3
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Les parenthèses sont toujours les bienvenues... SQL ne devine pas si tu fais le OR par rapport à l'avant-dernière condition ou toutes celles qui était avant.

    Et aussi les alias pour plus de clarté :

    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
    SELECT DISTINCT
        Ge.[No Dossier],
        Pr.Libelle_Projet,
        Ge.[Libellé Demande],
        Ge.[Date de la Demande],
        St.Statut_demande,
        Ge.[Libellé Réponse],
        Ge.Date_Fermeture
    FROM
        [T - Gestion des demandes] AS Ge,
        [T - Suivi Demandes] As Su,
        PROJETS As Pr,
        [T - Statut Demandes] AS St
    WHERE
        (Ge.[No Dossier] = Su.[No Dossier] AND
        Ge.Statut_demande = St.[ID Item] AND
        Ge.[Code Origine Demande] = Su.[Code Origine Demande] AND
        Pr.Code_Projet= Ge.[Code Projet] AND
        Ge.[Libellé Demande] like '%pour%') OR
        Ge.[Libellé Réponse] like '%pour%' ;
    Quand on poste pour poser une question on fait un minimum d'effort :
    - éclaircir
    - simplifier
    ET SURTOUT : CHERCHER AVANT !!!!

  4. #4
    Membre habitué Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Points : 192
    Points
    192
    Par défaut AS en majuscules, hein !
    Citation Envoyé par BiMouXeTTe
    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
    SELECT DISTINCT
        Ge.[No Dossier],
        Pr.Libelle_Projet,
        Ge.[Libellé Demande],
        Ge.[Date de la Demande],
        St.Statut_demande,
        Ge.[Libellé Réponse],
        Ge.Date_Fermeture
    FROM
        [T - Gestion des demandes] AS Ge,
        [T - Suivi Demandes] AS Su,
        PROJETS AS Pr,
        [T - Statut Demandes] AS St
    WHERE
        (Ge.[No Dossier] = Su.[No Dossier] AND
        Ge.Statut_demande = St.[ID Item] AND
        Ge.[Code Origine Demande] = Su.[Code Origine Demande] AND
        Pr.Code_Projet= Ge.[Code Projet] AND
        Ge.[Libellé Demande] like '%pour%') OR
        Ge.[Libellé Réponse] like '%pour%' ;
    Je ne pense pas au vu de ses conditions que ce soit de cette manière qu'il faille parenthéser la chose. Enfin, à lui de voir ce qu'il lui faut.
    Ingénieur Génie Logiciel et Systèmes d'Information
    Management des Nouvelles Technologies

    Ecole Supérieure d'Ingénieurs de Luminy (ESIL), Marseille

  5. #5
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Vu le Post de BiMoux !!!
    Mais vu kj'ai aussi nettoyer um minimum (Passer moins 4 minutes !!! 8) )
    y a pas de raison !!!

    PS : on a pas vu la meme chose sur le "Or"

    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
     
    SELECT DISTINCT
           Dem.[No Dossier],
           Prj.Libelle_Projet,
           Dem.[Libellé Demande],
           Dem.[Date de la Demande],
           Sta.Statut_demande,
           Dem.[Libellé Réponse],
           Dem.Date_Fermeture
     
    FROM
           [T - Gestion des demandes]         Dem,
           [T - Suivi Demandes],              Sui,
           PROJETS                            Prj,
           [T - Statut Demandes]              Sta
    WHERE
           Dem.[No Dossier]           = Sui.[No Dossier]           AND
           Dem.Statut_demande         = Sta.[ID Item]              AND
           Dem.[Code Origine Demande] = Sui.[Code Origine Demande] AND
           Prj.Code_Projet            = Dem.[Code Projet]          AND
           (
               Dem.[Libellé Demande] like '%pour%'  OR
               Dem.[Libellé Réponse] like '%pour%'
           );
    Signé : Capitaine Jean-Luc Picard

  6. #6
    Membre habitué Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Points : 192
    Points
    192
    Par défaut
    Je m'excuse j'ai été le premier, argoet ! (OK, j'ai pas nettoyé, bon)

    Ingénieur Génie Logiciel et Systèmes d'Information
    Management des Nouvelles Technologies

    Ecole Supérieure d'Ingénieurs de Luminy (ESIL), Marseille

  7. #7
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ah merde j'ai mis des AS en trop lol

  8. #8
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Citation Envoyé par Original Prankster
    Je m'excuse j'ai été le premier, argoet ! (OK, j'ai pas nettoyé, bon)

    Skuse Prankster
    N'avait pas vu ton Post

    Tete dans le guidon
    Signé : Capitaine Jean-Luc Picard

  9. #9
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 66
    Points : 48
    Points
    48
    Par défaut
    ohh vous etes trop adorable!!!!

    merci beaucoup pour votre aide!!!

  10. #10
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Wé mais la prochaine fois tu feras un effort, c'est au moins le deuxieme sujet de ta part que je trouve pas cool pour les personnes qui repondent...

  11. #11
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 66
    Points : 48
    Points
    48
    Par défaut

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/10/2011, 09h11
  2. Réponses: 20
    Dernier message: 22/02/2010, 15h02
  3. Problème avec la commande cd dans un shell
    Par kanko dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 12/09/2006, 09h40
  4. Probleme d'affichage du win user dans SQL server
    Par soulsidibe dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/08/2006, 11h48
  5. Réponses: 11
    Dernier message: 12/04/2005, 14h08

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