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 :

Résultat dans une seule et unique colonne


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Par défaut Résultat dans une seule et unique colonne
    Bonjour,

    Je bloque sur un problème sur oracle.


    J'ai réalisé une requête SQL qui me sort bien le résultat que je souhaites.

    Le problème c'est que je compare deux colonnes issus d'une même table et je souhaiterai que les résultats ressortent dans une seule et unique colonne (cf.image)
    Nom : Capture.JPG
Affichages : 296
Taille : 17,2 Ko

    Ainsi je souhaiterai avoir une seule colonne comme suit :
    EAN_CD
    3184035001090
    3083680051217
    3083680051224
    3083680000048
    3083680051217
    3083680905244

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT DISTINCT M.GL_CATEGORY_CD,M.MATERIAL_ID,M.MATERIAL_LONG_CD,M.MATERIAL_CAT12_CD ,M.MATERIAL_CAT13_CD,M.MATERIAL_CAT11_CD,
    M.MATERIAL_CAT1_CD,A.EAN_CD,V.EAN_CD AS CODE_EAN_UC,A.EAN_TYPE_CD,A.PCB_CD,M.MATERIAL_TYPE_CD
    FROM MATERIAL M
    INNER JOIN ARTICLES_EAN A ON  M.MATERIAL_SID=A.MATERIAL_SID
    INNER JOIN ARTICLES_EAN V ON  M.MATERIAL_SID=V.MATERIAL_SID
    WHERE M.MATERIAL_CAT12_CD<>'ZZ'
    AND A.EAN_TYPE_CD ='UC'
    AND V.EAN_TYPE_CD = 'UC'
    AND A.EAN_CD >V.EAN_CD;

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Quelque chose comme ça :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    WITH  src
        AS  (   SELECT DISTINCT 
                        M.GL_CATEGORY_CD
                    ,   M.MATERIAL_ID
                    ,   M.MATERIAL_LONG_CD
                    ,   M.MATERIAL_CAT12_CD 
                    ,   M.MATERIAL_CAT13_CD
                    ,   M.MATERIAL_CAT11_CD
                    ,   M.MATERIAL_CAT1_CD
                    ,   A.EAN_CD
                    ,   V.EAN_CD AS CODE_EAN_UC
                    ,   A.EAN_TYPE_CD
                    ,   A.PCB_CD
                    ,   M.MATERIAL_TYPE_CD
                FROM    MATERIAL        M
                    INNER JOIN 
                        ARTICLES_EAN    A 
                        ON  M.MATERIAL_SID  = A.MATERIAL_SID
                    INNER JOIN 
                        ARTICLES_EAN    V 
                        ON  M.MATERIAL_SID  = V.MATERIAL_SID
                WHERE   M.MATERIAL_CAT12_CD <>'ZZ'
                    AND A.EAN_TYPE_CD       = 'UC'
                    AND V.EAN_TYPE_CD       = 'UC'
                    AND A.EAN_CD            > V.EAN_CD
            )
    SELECT  GL_CATEGORY_CD
        ,   MATERIAL_ID
        ,   MATERIAL_LONG_CD
        ,   MATERIAL_CAT12_CD 
        ,   MATERIAL_CAT13_CD
        ,   MATERIAL_CAT11_CD
        ,   MATERIAL_CAT1_CD
        ,   EAN_CD
        ,   EAN_TYPE_CD
        ,   PCB_CD
        ,   MATERIAL_TYPE_CD
    FROM    src
    UNION
    SELECT  GL_CATEGORY_CD
        ,   MATERIAL_ID
        ,   MATERIAL_LONG_CD
        ,   MATERIAL_CAT12_CD 
        ,   MATERIAL_CAT13_CD
        ,   MATERIAL_CAT11_CD
        ,   MATERIAL_CAT1_CD
        ,   CODE_EAN_UC AS  EAN_CD 
        ,   EAN_TYPE_CD
        ,   PCB_CD
        ,   MATERIAL_TYPE_CD
    FROM    src
    ;
    Tu peux sans doute optimiser la requête
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Par défaut réponse al1_24
    Merci al1_24 pour cette piste .


    Je vais essayer tout ça et voir ce que ça donne

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Par défaut réponse al1_24
    Par contre au niveau du WITH src , je ne vois pas du tout ce qui va à cet endroit

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Par défaut Problème
    C'est la première que j'utilise le WITH en SQL donc j'ai un peu du mal.

    J'ai essayé d'apter ton code AL1_24, cependant SQL me génère l'erreur suivante:
    ORA-06553: PLS-306: numéro ou types d'arguments erronés dans appel à 'V'
    06553. 00000 - "PLS-%s: %s"
    *Cause:
    *Action:
    Erreur à la ligne 44, colonne 9




    VOICI MON CODE:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    WITH  EAN_CD
        AS  (   SELECT DISTINCT 
                        M.GL_CATEGORY_CD
                    ,   M.MATERIAL_ID
                    ,   M.MATERIAL_LONG_CD
                    ,   M.MATERIAL_CAT12_CD 
                    ,   M.MATERIAL_CAT13_CD
                    ,   M.MATERIAL_CAT11_CD
                    ,   M.MATERIAL_CAT1_CD
                    ,   A.EAN_CD
                    ,   V.EAN_CD AS CODE_EAN_UC
                    ,   A.EAN_TYPE_CD
                    ,   A.PCB_CD
                    ,   M.MATERIAL_TYPE_CD
                    FROM   MATERIAL M
                    INNER JOIN ARTICLES_EAN A ON  M.MATERIAL_SID  = A.MATERIAL_SID
                    INNER JOIN ARTICLES_EAN V ON  M.MATERIAL_SID  = V.MATERIAL_SID
                    WHERE M.MATERIAL_CAT12_CD <>'ZZ'
                    AND A.EAN_TYPE_CD = 'UC'
                    AND V.EAN_TYPE_CD  = 'UC'
                    AND A.EAN_CD  > V.EAN_CD
            )
    SELECT  M.GL_CATEGORY_CD
        ,   M.MATERIAL_ID
        ,   M.MATERIAL_LONG_CD
        ,   M.MATERIAL_CAT12_CD 
        ,   M.MATERIAL_CAT13_CD
        ,   M.MATERIAL_CAT11_CD
        ,   M.MATERIAL_CAT1_CD
        ,   A.EAN_CD
        ,   A.EAN_TYPE_CD
        ,   A.PCB_CD
        ,   M.MATERIAL_TYPE_CD
    FROM MATERIAL M
    INNER JOIN ARTICLES_EAN A ON  M.MATERIAL_SID = A.MATERIAL_SID
    UNION
    SELECT  M.GL_CATEGORY_CD
        ,   M.MATERIAL_ID
        ,   M.MATERIAL_LONG_CD
        ,   M.MATERIAL_CAT12_CD 
        ,   M.MATERIAL_CAT13_CD
        ,   M.MATERIAL_CAT11_CD
        ,   M.MATERIAL_CAT1_CD
        ,   V.CODE_EAN_UC AS  EAN_CD 
        ,   V.EAN_TYPE_CD
        ,   V.PCB_CD
        ,   M.MATERIAL_TYPE_CD
    FROM MATERIAL M
    INNER JOIN ARTICLES_EAN V ON  M.MATERIAL_SID = V.MATERIAL_SID

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    src est juste le nom que j'ai donné à mon expression de table commune (la sous-requête entre parenthèses). Tu pouvais essayer la requête telle quelle.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Par défaut Problème résolu
    Après avoir réessayer ta requête comme tu me l'a écrite, elle fonctionne parfaitement et repond à ce que je souhaite !


    Merci beaucoup

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/07/2015, 19h17
  2. Réponses: 0
    Dernier message: 16/06/2015, 11h55
  3. Réponses: 7
    Dernier message: 17/10/2014, 17h43
  4. [XL-2007] Recherche avec plusieurs critéres résultat dans une seul colonne
    Par guigui69 dans le forum Excel
    Réponses: 3
    Dernier message: 24/09/2014, 13h34
  5. Resultat requete dans une seule colonne
    Par mathieu--g dans le forum Sybase
    Réponses: 2
    Dernier message: 08/07/2003, 13h42

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