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 :

Decode et group by


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut Decode et group by
    Bonsoir !

    Voilà mon cas !!

    J'obtiens la valeur d'un champ nom_image avec un decode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decode(champ1, '', '', 1, champ2) nom_image
    Si ce champ nom_image n'est pas vide (et seulement dans ce cas) je souhaite le concaténer avec un champ code_image et une URL en dur sinon je laisse le tout à vide

    Pour cela je n'ai pas trouvé d'autre solution que de réutiliser un decode. Ce qui fait 2 decode imbriqués :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    decode(
      decode(champ1, '', '', 1, champ2) ,
      '', '',
      code_image ||'_'|| 'http://www.monurl.com/images/' ||decode(champ1, '', '', 1, champ2)
    )
    Mais du coup je n'arrive pas à écrire *mon group by sans obtenir une erreur ORA-00937

    En plus ce n'est qu'une partie d'une looooongue requête et ça complique les choses je pense.*

    Pouvez vous m'aider ?
    Est-ce qu'il y a une meilleure option que le decode ? Ou bien le group by peut être facilement écrit ?

    Merci !

  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
    Decode est une très vieille fonction remplacée depuis des lustres par CASE.
    Votre première partie n'est nulle que si champ1 est nul, est différent de 1 ou si champ1 vaut 1 et champ2 est nul.

    Il suffit donc de l'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    case
      when champ1 is null 
        or (champ1 = 1 and champ2 is null)
        or champ1 <> 1
      then null
      else code_image || '_http://www.monurl.com/images/' || champ2
    end
    L'expression entière est à reprendre dans la clause group by de la requête.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Dans le group by, comme dans le order by, on peut écrire l'index de la colonne (peut être pas sur tous les SGBD)
    En général quand je fais un CHAR ou un TRIM par exemple, je fauis group by 1, 2 plutôt que group by TRIM(champs1), CHAR(champs2)
    Le Porc est un loup pour le Porc.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut
    Merci à tous les 2, je vais tester ça immédiatement !

    Oui asmduty on peut faire ça et c'est une bonne idée, ma chef le fait souvent et moi je n'y pense jamais !!!

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    Je ferai très attention quand à l'utilisation de group by 1, 2.

    Il arrivera un moment où un developpeur rajoutera une colonne dans le select et ne se préocupera pas de l'order by ..et la c'est le drame :p

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Ouais enfin bon, si le développeur ne s'en préoccupe pas c'est qu'il ne fait pas correctement son boulot.
    Et avec le group by c'est pire, car s'il rajoute un champs dans la sélection et pas dans le gorup by, ça plantera de toute manière (sauf fonction) vu que tous le champs du select doivent être dans le group by.
    Le Porc est un loup pour le Porc.

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    C'est un risque, comme les jointures non normalisées, d'erreur.

    A partir de là vous avez le choix entre imposer une syntaxe qui comporte moins de risque ou pas.

    Et selon la taille des équipes et du projet... moins y a de risque et moins y aura de potetiel erreur de regréssion comme celle-ci.

    Après vous faites comme bon vous semble ça ne me dérange aucunement !

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Qui plus est, une requête qui plante est plus "visible" dans les tests qu'un mauvais tri...

    Tatayo.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut
    Je ne m'en sors pas j'ai toujours l'erreur ORA-00937

    Quand je fais la requête toute simple, cela fonctionne.

    Mais quand j'intègre le tout cela fait 27 champs à récupérer et 32 dans le groupe by avec les decode et cela me renvoie l'erreur ORA-00937.
    Que ce soit en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    group by champ1, champ2, ..., champ 32
    ou en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    group by 1, 2, 3,..., 32

  10. #10
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    http://ora-00937.ora-code.com/

    L'erreur est claire vous avez oubliez des colonnes dans la clause group by, ou vous avez oubliez d'utiliser une fonction d'agrégation sur une des colonnes du select.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut
    En effet dans mon SELECT j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 
    id_image, 
    id_dossier,
    etc

    Comment faire alors ? ...

  12. #12
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Sans la requete que vous utilisez on ne peut pas deviner

  13. #13
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Citation Envoyé par asmduty Voir le message
    Dans le group by, comme dans le order by, on peut écrire l'index de la colonne (peut être pas sur tous les SGBD)
    En général quand je fais un CHAR ou un TRIM par exemple, je fauis group by 1, 2 plutôt que group by TRIM(champs1), CHAR(champs2)
    Selon le fonctionnel qui est derrière, on peut aussi se contenter d'un group by champs1, champs2.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par punkoff Voir le message
    Sans la requete que vous utilisez on ne peut pas deviner
    Voilà une version + simple mais qui génère l'erreur !


    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
    select 
    id_image,
    id_dossier,
    code_image,
    MAX(case when MAX(DECODE (champ1, 10, champ2, '')) IS NULL 
        then NULL 
        else 'http://www.monurl.com/images/' || code_image || '_' || MAX(DECODE (champ1, 10, champ2, '')) end) as IMG_PRINC,
    MAX(case when MAX(DECODE (champ1, 11, champ2, '')) IS NULL 
        then NULL 
        else 'http://www.monurl.com/images/' || code_image || '_' || MAX(DECODE (champ1, 11, champ2, '')) end) as IMG_SECOND
    from IMAGES 
    group by 
    	id_image, 
    	id_dossier, 
    	code_image, 
    	DECODE (champ1, 10, champ2, ''), code_image,
    	DECODE (champ1, 11, champ2, ''), code_image;

  15. #15
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Pour moi votre group by ne devrait avoir que : "id_image, id_dossier, code_image"

    Le reste de vos colonnes dans le select sont encadrées par la fonction d'agrégation MAX

  16. #16
    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
    Un MAX de MAX, dans le cas présent, ce n'est pas valable.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Un MAX de MAX, dans le cas présent, ce n'est pas valable.
    J'ai corrigé :

    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
    select 
    id_image,
    id_dossier,
    code_image,
    MAX(case when DECODE (champ1, 10, champ2, '') IS NULL 
        then NULL 
        else 'http://www.monurl.com/images/' || code_image || '_' || DECODE (champ1, 10, champ2, '') end) as IMG_PRINC,
    MAX(case when DECODE (champ1, 11, champ2, '') IS NULL 
        then NULL 
        else 'http://www.monurl.com/images/' || code_image || '_' ||DECODE (champ1, 11, champ2, '') end) as IMG_SECOND
    from IMAGES 
    group by 
    	id_image, 
    	id_dossier, 
    	code_image, 
    	DECODE (champ1, 10, champ2, ''), code_image,
    	DECODE (champ1, 11, champ2, ''), code_image;

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par punkoff Voir le message
    Bonjour,

    Pour moi votre group by ne devrait avoir que : "id_image, id_dossier, code_image"

    Le reste de vos colonnes dans le select sont encadrées par la fonction d'agrégation MAX
    Ca ne fonctionne pas si je ne met que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    group by id_image, id_dossier, code_image
    Toujours l'erreur ORA-00937

  19. #19
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    c'est que votre requête simplifiée ne reflète pas la requête réel (vous parliez de 27 colonnes dans le select et 32 dans le group by..)

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Points : 84
    Points
    84
    Par défaut
    Voici ma requête complète :

    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
    53
    54
     
    CREATE OR REPLACE VIEW V_MA_VUE
    	(CD_PROD, ID_DOSS, CD_FOUR, LB_FOUR, CD_EDITEUR, LB_PROD, 
    	 LB_PROD_COMP, LB_AUTEUR, CD_CAT, CD_TYPE, CD_ISBN, 
    	 NB_PAGES, IMG_PRINC, IMG_SECOND, IMG_LOGO_MARQ, IMG_DETAIL_PROD_1, 
    	 IMG_DETAIL_PROD_2, LB_COMMERCIAL, LB_ACCROCHE, LB_DESCRIPTIF, LB_CARACT_TECH_REGL, 
    	 ECOPART, LONGUEUR, LARGEUR, HAUTEUR, POIDS, 
    	 STOCK_INDISPO_WEB)
    AS 
    SELECT DISTINCT
    	P.CD_PROD,
    	DP.ID_DOSS ID_DOSS,
    	nvl(P.CD_FOUR,' ') CD_FOUR,
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(F.LB_FOUR),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_FOUR,
    	nvl(P.CD_EDIT,' ') CD_EDIT,
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(P.DESI_PROD),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_PROD,
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(P.LB_PROD_COMP),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_PROD_COMP,
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(P.LB_AUTE),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_AUTEUR,
    	nvl(P.CAT_PROD2,' ') CD_CAT,
    	P.CAT_PROD CD_TYPE,          
    	nvl(P.CD_ISBN,' ') CD_ISBN,          
    	P.NB_PAGE NB_PAGES,
    	MAX(case when MAX(DECODE (DP.CD_DESIPIEC, 10, DP.LB_LIEN, '')) IS NULL then NULL else 'http://www.monurl.com/images/' || P.CD_PROD || '_' || MAX(DECODE (DP.CD_DESIPIEC, 10, DP.LB_LIEN, '')) end) as IMG_PRINC,
    	MAX(case when MAX(DECODE (DP.CD_DESIPIEC, 11, DP.LB_LIEN, '')) IS NULL then NULL else 'http://www.monurl.com/images/' || P.CD_PROD || '_' || MAX(DECODE (DP.CD_DESIPIEC, 11, DP.LB_LIEN, '')) end) as IMG_SECOND,
    	MAX(case when MAX(DECODE (DP.CD_DESIPIEC, 12, DP.LB_LIEN, '')) IS NULL then NULL else 'http://www.monurl.com/images/' || P.CD_PROD || '_' || MAX(DECODE (DP.CD_DESIPIEC, 12, DP.LB_LIEN, '')) end) as IMG_LOGO_MARQ,
    	MAX(case when MAX(DECODE (DP.CD_DESIPIEC, 13, DP.LB_LIEN, '')) IS NULL then NULL else 'http://www.monurl.com/images/' || P.CD_PROD || '_' || MAX(DECODE (DP.CD_DESIPIEC, 13, DP.LB_LIEN, '')) end) as IMG_DETAIL_PROD_1,
    	MAX(case when MAX(DECODE (DP.CD_DESIPIEC, 14, DP.LB_LIEN, '')) IS NULL then NULL else 'http://www.monurl.com/images/' || P.CD_PROD || '_' || MAX(DECODE (DP.CD_DESIPIEC, 14, DP.LB_LIEN, '')) end) as IMG_DETAIL_PROD_2,
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(D.LB_WEBCIAL),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_COMMERCIAL, 
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(D.LB_WEBACCR),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_ACCROCHE,
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(D.LB_WEBDESC),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_DESCRIPTIF, 
    	nvl(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(rtrim(D.LB_WEBTECH),CHR(10),''),CHR(13),''),CHR(146),''''),CHR(34),''),CHR(162),''),CHR(236),''),CHR(190),''),CHR(178),''),'¹',''''),CHR(38),'ET'),' ') LB_CARACT_TECH_REGL,
    	P.MT_ECOP ECOPART, 
    	nvl(D.NM_LONG,0) LONGUEUR, 
    	nvl(D.NM_LARG,0) LARGEUR, 
    	nvl(D.NM_HAUT,0) HAUTEUR, 
    	nvl(D.NM_POID,0) POIDS,
    	D.NM_STOCDISPO STOCK_INDISPO_WEB
    FROM PRODUIT P, FOURNISSEUR F, DOSSIER D, ASSO_OFFRE_PROD A,  DOSSIER_PIECE DP 
    WHERE P.CD_PROD is not null 
    	AND P.CD_FOUR = F.CD_FOUR(+)
    	AND P.CD_PROD = D.CD_PROD(+)
    	AND P.CD_PROD = A.CD_PROD(+)
    	AND D.ID_DOSS = DP.ID_DOSS(+)
    	AND A.CAMP>=79
    GROUP BY 
    	P.CD_PROD, DP.ID_DOSS , P.CD_FOUR, F.LB_FOUR, P.CD_EDIT, P.DESI_PROD, P.LB_PROD_COMP, 
    	P.LB_AUTE, P.CAT_PROD2, P.CAT_PROD, P.CD_ISBN, P.NB_PAGE,
    	DECODE (DP.CD_DESIPIEC, 10, DP.LB_LIEN, ''), P.CD_PROD,
    	DECODE (DP.CD_DESIPIEC, 11, DP.LB_LIEN, ''), P.CD_PROD,
    	DECODE (DP.CD_DESIPIEC, 12, DP.LB_LIEN, ''), P.CD_PROD,
    	DECODE (DP.CD_DESIPIEC, 13, DP.LB_LIEN, ''), P.CD_PROD,
    	DECODE (DP.CD_DESIPIEC, 14, DP.LB_LIEN, ''), P.CD_PROD, 
    	D.LB_WEBCIAL,  D.LB_WEBACCR, D.LB_WEBDESC, D.LB_WEBTECH,
    	P.MT_ECOP, D.NM_LONG, D.NM_LARG, D.NM_HAUT,D.NM_POID, D.NM_STOCDISPO

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ERREUR DECODE: group by
    Par antoine1504 dans le forum ODI (ex-Sunopsis)
    Réponses: 2
    Dernier message: 29/10/2009, 16h07
  2. pb avec Decode, group by
    Par aurelie83 dans le forum SQL
    Réponses: 1
    Dernier message: 05/11/2007, 16h12
  3. [Oracle] group by, decode, et distinct
    Par babylone7 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 12/02/2007, 13h11
  4. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

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