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

DB2 Discussion :

Creation de vue avec valeur fixe renvoie D3F340, D4C1C5 etc


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut Creation de vue avec valeur fixe renvoie D3F340, D4C1C5 etc
    Bonjour,

    Je souhaite créer une vue qui renvoit un code société , un code article et un code lieu. Ce code lieu doit prendre la valeur 'multi' si le produit est présent sur plusieurs lieu ou prendre la valeur lieu contenu en base si le produit est présent sur 1 seul lieu.

    Exemple :
    01 Biberon paris
    01 Biberon Lille
    01 Tetine paris
    01 couche Lille

    doit donner
    01 Biberon MULTI
    01 Tetine paris
    01 couche Lille

    Or, au lieu d'avoir les valeurs MULTI, paris, Lille dans le résulat, j'ai des valeurs hexa du type D3F340, D4C1C5, ...

    Auriez vous une idée pour m'aider ?

    MERCI BEAUCOUP A TOUS

    Le code ci-dessous :
    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
    24
    25
    26
    27
    28
    CREATE VIEW VIEW_SOCIETE/ARTLIGNE ( 
    	DNSOCI , 
    	DNARTI , 
    	DNLIEU) 
    	AS 
    (
    select T1.dnsoci, T1.dnarti, ‘MULTI’                                            
    from olymp_gprd/oldnom00 T1                                  
    where T1.dnsoci='01' 
    and T1.dnarti in                                             
    (select T2.dnarti                                            
     from olymp_gprd/oldnom00 T2                                
    where T2.dnsoci= T1.dnsoci 
    group by T2.dnarti                                           
    having count (distinct T2.dnlieu)>1 ) 
    )
    union
    (
    select T3.dnsoci, T3.dnarti, T3.dnlieu                      
    from olymp_gprd/oldnom00 T3                                 
    where T3.dnsoci='01' 
    and T3.dnarti in                                             
    (select T4.dnarti                                            
     from olymp_gprd/oldnom00 T4                                 
    where T4.dnsoci= T3.dnsoci
    group by T4.dnarti                                           
    having count (distinct T4.dnlieu)=1 ) 
    )

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT...
    WHERE T2.dnsoci= T1.dnsoci 
    AND T2.dnarti= T1.dnarti
    GROUP BY 1, 2, 3
    ...
    idem pour le second select.

    ça devrait sauf erreur faire l'affaire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut Merci, ça marche.
    Merci beaucoup pour votre aide, cela fonctionne parfaitement ....

    Je mets le code pour info

    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
    24
    25
    26
    27
    28
    CREATE VIEW VIEW_EMSA/ARTLIGNE ( 
    	DNSOCI , 
    	DNARTI , 
    	DNLIEU) 
    	AS 
    (
    select T1.dnsoci, T1.dnarti, ‘MULTI’                                            
    from olymp_gprd/oldnom00 T1                                  
    where T1.dnsoci='01' 
    and T1.dnarti in                                             
    (select T2.dnarti                                            
     from olymp_gprd/oldnom00 T2                                
    where T2.dnsoci= T1.dnsoci 
    group by dnsoci, dnarti, dnlieu                                           
    having count (distinct T2.dnlieu)>1 ) 
    )
    union
    (
    select T3.dnsoci, T3.dnarti, T3.dnlieu                      
    from olymp_gprd/oldnom00 T3                                 
    where T3.dnsoci='01' 
    and T3.dnarti in                                             
    (select T4.dnarti                                            
     from olymp_gprd/oldnom00 T4                                 
    where T4.dnsoci= T3.dnsoci
    group by dnsoci, dnarti, dnlieu                        
    having count (distinct T4.dnlieu)=1 ) 
    )

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Comme je l'ai montré dans mon post précédent, pour raison de performance, il est préférable de passer par une égalité sur le n° d'article plutôt que par une autre select .

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

Discussions similaires

  1. [XL-2010] Ajouts colonnes avec valeurs fixes et variables
    Par ericmlj78 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/01/2014, 11h39
  2. Insert into avec valeur fixe et select
    Par Isalite dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/11/2013, 17h06
  3. RegEx avec valeurs fixes spécifiques
    Par bstevy dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 21/10/2013, 12h22
  4. Creation de table avec valeur par defaut
    Par Tsukaasa dans le forum JDBC
    Réponses: 0
    Dernier message: 01/09/2008, 17h45
  5. creation de vue avec mysql4.1.9
    Par fk04 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/08/2006, 16h26

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