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 :

Selection suivant condition


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 88
    Par défaut Selection suivant condition
    Bonjour,

    Je n'arrive pas à faire un SELECT.

    Voici le problème.

    J'ai une table de factures qui peuvent être soit payer soit non payer : facture.payer = 'oui' ou facture.payer = 'non' (champ de type varchar).

    J'aimerais faire un SELECT sur ma table des factures suivant l'option 'Type' qui peut prendre les valeurs suivantes : 'Tout', 'Oui' ou 'Non'.

    Si on choisit l'option 'Oui' seules les factures payées seront sélectionnées, si on choisit 'Non' seules les factures impayées seront sélectionnées et si on choisit 'Tout' toutes les factures (payées et impayées) seront sélectionnées.

    Biensûr, je pourrais faire 3 SELECT distinct suivant un CASE (ou IF) mais je voudrais faire cela avec 1 seul SELECT (dans la clause WHERE par exemple). En effet c'est pour utiliser avec un programme spécial qui n'autorise qu'1 SELECT.

    Merci à vous tous qui pourrez m'aider (et aux autres aussi).

    Bonne et heureuse année 2008 !

    Alf

  2. #2
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 14
    Par défaut
    bonjour bong03,
    puisque tu cherches a n avoir q une seule requête select ,tu peux agir sur ta variable type et ce en manipulant les requetes dynamiques ainsi :tu auras une seule requete select avec la clause where qui elle ,depend de la variable type tel que : pour chaque type ,tu aura une condition qui tu vas pouvoir interger dans la clause where de ta requete. si mon idee t intersse ,je pourrais te dire comment faire ... et c simple

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 042
    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 : 22 042
    Billets dans le blog
    6
    Par défaut
    Exemple en SQL Server :
    Soit la variable @TYPFAC de type BIT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ...
    FROM   MaTable
    WHERE  PAYER = COALESCE(@TYPFAC, PAYER);
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 88
    Par défaut
    Merci SQLPro pour ta réponse. Je ne connaissais pas cette fonction. Cepandant elle ne fait pas ce que j'attends : à savoir que si @Type = 'tout', la requete ne renvoi rien alors qu'elle doit tout renvoyer. Si @Type = 'Oui' (respectivement 'Non') le résultat attendu est OK.

    zineb : Peux-tu m'en dire plus sur ta solution : des exemples...

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Il faut tout simplement que tu mette ta variable PHP dans ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "SELECT * FROM Facture where Type='$type'";

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 042
    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 : 22 042
    Billets dans le blog
    6
    Par défaut
    Si dans la variable vous ne mettez rien (NULL) alors vous aurez tout !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. select suivant une condition?
    Par cortex024 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/06/2007, 19h03
  2. Réponses: 2
    Dernier message: 08/06/2006, 06h29
  3. SELECT et conditions
    Par metalcoyote dans le forum Oracle
    Réponses: 6
    Dernier message: 20/04/2006, 15h38
  4. [HyperFile] requete de selection avec condition de comptage
    Par pierre.zelb dans le forum HyperFileSQL
    Réponses: 1
    Dernier message: 16/02/2006, 10h20
  5. Réponses: 6
    Dernier message: 08/06/2004, 14h51

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