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

MS SQL Server Discussion :

WHERE avec condition dynamique


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut WHERE avec condition dynamique
    Bonjour à tous,

    Pour comprendre ma question, je vous présente une table qui contient une liste de rapport.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ID           DateTerminee
    1            2009-10-10
    2            NULL
    3            2009-10-12
    4            NULL
    5            2009-10-14
    Dans une procédure stockée, je reçoit un paramètre qui indique si je désire cacher les rapport terminée.

    Donc cela veut dire que si le paramètre cacherRapportTerminer est NULL ou qu'il vaut 0, alors j'affiche tout les rapports de cette lignes. Si paramètre cacherRapportTerminer vaut 1 alors j'affiche seulement les lignes dont la colonne DateTerminee est NULL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE PROCEDURE (cacherRapportTerminer BIT)
    AS
    BEGIN
    (
        SELECT ID, DateTerminee
        FROM Raport
        WHERE (cacherRapportTerminer IS NULL OR cacherRapportTerminer= 0)
              OR (cacherRapportTerminer= 1 AND DateTerminee IS NOT NULL)
    )
    J'ai biensur essayé d'autres combinaisons, mais cela ne fonctionne pas. Il est à noté que dans cette requête j'ai un tas d'autres conditions, alors je ne veux pas englober la requête dans un IF que pour cette condition qui me pose problème.

    Merci à tous.

  2. #2
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    J'ai finalement trouvé la solution moi-même J'avais la bonne condition, mais comme ma requête était munis de plusieurs autres conditions, j'obtenais un tas de lignes bizarre. C'était à cause que j'avais pas placé mes paranthèses autour de CETTE condition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE PROCEDURE (cacherRapportTerminer BIT)
    (
        SELECT ID, 
                   DateTerminee
        FROM Raport
        WHERE (cacherRapportTerminer IS NULL OR cacherRapportTerminer <> 1 OR DateTerminee IS NULL)

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

Discussions similaires

  1. Condition Where avec valeur de la meme table
    Par pelloq1 dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/04/2009, 15h22
  2. [MySQL] Requete Select avec choix dynamique des champs de condition
    Par belaggoun2000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/02/2009, 11h30
  3. Requêtes avec condition dans la clause where
    Par desmo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/02/2008, 13h36
  4. Réponses: 2
    Dernier message: 16/06/2007, 12h37
  5. Réponses: 3
    Dernier message: 16/02/2006, 16h58

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