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

Requêtes MySQL Discussion :

Problème de case avec select


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Par défaut Problème de case avec select
    Bonjour,

    J'ai un problème avec une requête utilisant une clause CASE, j'aimerai qu'elle m'effectue une select différent en fonction d'un paramêtre. Je ne sais pas si c'est réellement possible et si c'est vraiment la meilleur solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT CASE tenant
    WHEN 'machine' THEN (SELECT * FROM liaison, machine WHERE id_tenant=id_machine AND id_aboutissant=1)
    WHEN 'equipement' THEN (select * FROM liaison, equipement WHERE id_tenant=id_equipement AND id_aboutisssant=1)
    END
    FROM liaison WHERE id_aboutissant=1
    Je reçois cette erreur que je l'exécute:
    #1241 - Operand should contain 1 column(s)

    Merci d'avance,
    Cordialement.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Par défaut
    Bonjour,

    au lieu de "END", ce n'est pas "END CASE" ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut Syntaxe d'un select case
    Salut,

    Il me semble que tu te trompe dans ta syntaxe (a moins que ce soit moi qui ne connaisse pas cette syntaxe de l'instruction select).
    La syntaxe est en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Select case x
     case 1
       <ton code qd x = 1>
     case2 
       <ton code qd x = 2>
     case else
       <le code pour tous les autres cas>
    End Select
    De plus, si ma mémoire est bonne, un select ne peut porter que sur une valeur numérique (un entier même). Donc, dans ton cas, un simple If...ElseIf...Else...End If serait peut être une meilleure idée.

    Bon courage à toi
    -M@rc0-

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut décidemment
    LOL !
    Je suis vraiment pas réveillé ce matin... Tellement l'habitude de poster sur le forum VBS
    Bref, ce que tu essai de faire n'est pas propre à MySql. Peux tu nous en dire plus sur le langage que tu utilise ?( php par exemple ?)

    tcho

    -M@rc0-

Discussions similaires

  1. Problème d'impression avec selection variable
    Par itzik92 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/10/2013, 08h33
  2. Problème de requête avec select extract
    Par sacan dans le forum Informix
    Réponses: 5
    Dernier message: 17/03/2013, 10h38
  3. Requête CASE avec SELECT imbriqué
    Par pperrin dans le forum SQL
    Réponses: 2
    Dernier message: 03/10/2011, 12h18
  4. Problème de jointure avec select
    Par khaoula_14_05 dans le forum SQL
    Réponses: 3
    Dernier message: 22/04/2008, 18h49
  5. [Oracle] Problème de case avec oracle
    Par furtif1 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/02/2007, 21h48

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