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

Oracle Discussion :

Mettre une condition if dans une requete sql


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Points : 12
    Points
    12
    Par défaut Mettre une condition if dans une requete sql
    bonjour,
    je souhaiterais effectuer une requete qui me remonte un total mais qui peut être multiplié par 2 selon si le champ bonus est égale à 1 ou pas.
    comment dois je faire dans mon sql????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select ac.nom, ac.prenom, (w_af.fas + (12 * w_af.abo)) as total, w_af.bonus
      from acteur ac, w_affaire w_af
      where w_af.ident_acteur = ac.ident_acteur
       and w_af.date_supp = '31/12/9999'
       and w_af.eligible = 1;
    dans la requete c'est le champ total que je souhaite multiplier par 2 si bonus = 1 sinon laisser la valeur de total.

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 88
    Points
    88
    Par défaut
    Salut,

    Voici ce que je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select ac.nom, ac.prenom, CASE WHEN w_af.bonus = 1 THEN 2 ELSE 1 END * (w_af.fas + (12 * w_af.abo)) as total, w_af.bonus 
      from acteur ac, w_affaire w_af 
      where w_af.ident_acteur = ac.ident_acteur 
       and w_af.date_supp = '31/12/9999' 
       and w_af.eligible = 1;

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Le DECODE marche bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select ac.nom, ac.prenom, decode(w_af.bonus,1, 2,1) * (w_af.fas + (12 * w_af.abo)) as total, w_af.bonus 
      from acteur ac, w_affaire w_af 
      where w_af.ident_acteur = ac.ident_acteur 
       and w_af.date_supp = '31/12/9999' 
       and w_af.eligible = 1;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  4. #4
    Invité(e)
    Invité(e)
    Par défaut Re: Mettre une condition if dans une requete sql
    Citation Envoyé par Sardonnen
    bonjour,
    je souhaiterais effectuer une requete qui me remonte un total mais qui peut être multiplié par 2 selon si le champ bonus est égale à 1 ou pas.
    comment dois je faire dans mon sql????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select ac.nom, ac.prenom, (w_af.fas + (12 * w_af.abo)) as total, w_af.bonus
      from acteur ac, w_affaire w_af
      where w_af.ident_acteur = ac.ident_acteur
       and w_af.date_supp = '31/12/9999'
       and w_af.eligible = 1;
    dans la requete c'est le champ total que je souhaite multiplier par 2 si bonus = 1 sinon laisser la valeur de total.
    essaye avec un decode :

    select ac.nom, ac.prenom, decode(w_af.bonus,1,(w_af.fas + (12 * w_af.abo))*2,(w_af.fas + (12 * w_af.abo)))
    from acteur ac, w_affaire w_af
    where w_af.ident_acteur = ac.ident_acteur
    and w_af.date_supp = '31/12/9999'
    and w_af.eligible = 1;[/

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    super
    merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/03/2014, 14h45
  2. Comment mettre du code php dans une condition javascript ?
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2010, 12h55
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. Réponses: 1
    Dernier message: 14/02/2007, 17h08
  5. [SQL]insérer une condition IF dans une requete
    Par freija dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/09/2006, 20h08

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