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 :

Vue sélection sur deux champs [11g]


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut Vue sélection sur deux champs
    Bonjour,

    j'essaye de créer une vue à partir d'une table de référence composé d'un code
    avec une autre table composé du même code mais avec des champs de filtre présence ou pas.

    ref
    code
    1
    2
    3

    situation
    code region1 region2
    1 oui non
    2 non oui
    3 oui oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CREATE OR REPLACE FORCE VIEW "SCHEMA"."TMEP" ("code","region1","region2")
    AS
    SELECT refe.code,
    case when refe.code = SITUATION.code then 1
    else 0
    end as reg1,
    case when refe.code = SITUATION.code then 1
    else 0
    end as reg2
    FROM
    LEFT JOIN SCHEMA.REF.CODE=SCHEMA.SITUATION.CODE WHERE SCHEMA.SITUATION.REGION1='OUI'
    LEFT JOIN SCHEMA.REF.CODE=SCHEMA.SITUATION.CODE WHERE SCHEMA.SITUATION.REGION2='OUI';
    mais oracle n'accepte pas cette requête??

    merci de votre aide


    ok en filtrant sur le case tt fonctionne :-)
    case when refe.code = SITUATION.code and SCHEMA.SITUATION.REGION2='OUI'

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par bernards111 Voir le message
    mais oracle n'accepte pas cette requête??
    Vous avez écrit les jointures un peu au pif non ?

    Citation Envoyé par bernards111 Voir le message
    ok en filtrant sur le case tt fonctionne :-)
    J'en doute sérieusement, puisque vous avez écrit n'importe quoi.

    D'ailleurs qu'est censé faire votre requête ?
    Remplacer les OUI par 1 et les NON par 0 ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    bonjour c de trop pour toi apparemment..

    C'est comme les yeux, c'est en trop (cf section débutant)

    Alors je suis tout à fait prêt à entendre ce que tu as à me dire pourvu que tu n'emploie pas ce ton arrogant.
    oui tu sais beaucoup de chose et moi rien du tout, ce qui confirme que je suis dans la bonne section.

    oui j'ai essayé d'adapter mon code pour le mettre sur le forum et j'ai écrit n'importe quoi désolé ...trop de fatigue..
    mais je pense avoir passer ce message en résolu assez rapidement pour ne pas trop pourrir le forum avec cet exemple alambiqué.;

    Mon code ressemblait plutôt à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE OR REPLACE FORCE VIEW "Schema"."TMP" ("CD_REF","TP_24","TP_41")
    AS
      SELECT refe.code.CD_REF,
        CASE
          WHEN table1.CD_NOM=table2.CD_NOM
          AND table2.RG_24      ='OUI'
          THEN 1
          ELSE 0
        END AS TP_24,
        CASE
          WHEN table1.CD_NOM=table2.CD_NOM
          AND table2.RG_41      ='OUI'
          THEN 1
          ELSE 0
        END AS TP_41
        
      FROM (table1
      INNER JOIN refe.code
      ON table1.CD_REF = refe.code.CD_REF)
     
      LEFT JOIN table2
      ON table1.CD_NOM=table2.CD_NOM;

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

Discussions similaires

  1. Tri sur deux champs en même temps
    Par Azharis dans le forum Access
    Réponses: 8
    Dernier message: 11/01/2006, 13h10
  2. [MYSQL] Problème ORDER BY sur deux champs
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 14/10/2005, 16h46
  3. pb avec select sur deux champs
    Par graphicsxp dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/03/2005, 15h30
  4. contrainte sur deux champs d'une table
    Par bdkiller dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/09/2004, 18h26
  5. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56

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