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

SQL Oracle Discussion :

Probleme Convertir Case en decode


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 189
    Par défaut Probleme Convertir Case en decode
    Bonjour

    Je travaille sous oracle 8 i comment puis je
    convertir cette syntaxe en decode


    sum(case when (S.supp=1 and E1.even = 'V11') then tx_rep1*brut/100
    when (S.supp=1 and E1.even = 'P11') then tx_rep2.brut/100
    when (S.supp=1 and E1.even = 'V1') then tx_rep3*brut/100 end)

    Si ce n'est pas possible y a t'il une autre facon de faire

    Merci

  2. #2
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    Effectivement, essais de batir une vue avec ton CASE, et d'attaquer cette vue dans ton code.

    Nicolas.

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

    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
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SUM(DECODE(s.supp, 1, DECODE(e1.even,	'V11',tx_rep1*brut/100, 
    			'P11',tx_rep2.brut/100,
    			'V1', tx_rep3*brut/100)
    		)
     )

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 189
    Par défaut Merci MCM je teste
    Merci MCM je vais tester ceci
    j'espere que ca va marcher !!

  5. #5
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    Le decode fonctionne très bien, bien entendu.
    Le CASE fonctionne en 8i SQL mais pas en 8i PL/SQL, tu dois utiliser un decode, ou un contournement consiste à passer par une vue intermédiaire :
    1. Tu créé la vue comme ta requête actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE VIEW view_name 
    AS select  sum(case when (S.supp=1 and E1.even = 'V11') then tx_rep1*brut/100
    when (S.supp=1 and E1.even = 'P11') then tx_rep2.brut/100
    when (S.supp=1 and E1.even = 'V1') then tx_rep3*brut/100 end) 
    ...
    2. Dans ton code tu fais un select sur cette vue.

    Nicolas.

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

Discussions similaires

  1. probleme de case a cocher
    Par Damish dans le forum ASP
    Réponses: 2
    Dernier message: 03/10/2006, 08h55
  2. [PL/SQL] Probleme de CASE
    Par Bahan dans le forum Oracle
    Réponses: 1
    Dernier message: 16/08/2006, 17h53
  3. probleme de case avec un u_short
    Par [thebadskull] dans le forum C
    Réponses: 4
    Dernier message: 06/11/2005, 16h32
  4. [java]probleme de case dans switch
    Par mousstik dans le forum Langage
    Réponses: 8
    Dernier message: 19/09/2005, 16h27
  5. Probleme de cases a cocher...
    Par linou dans le forum Web
    Réponses: 3
    Dernier message: 25/05/2005, 14h37

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