Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 19h10   #1
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
Par défaut Decode et group by

Bonsoir !

Voilà mon cas !!

J'obtiens la valeur d'un champ nom_image avec un decode :
Code :
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 :
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 !
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 20h14   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 :
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.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 09h21   #3
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
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.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h10   #4
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
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 !!!
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h29   #5
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
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
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h44   #6
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
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.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h02   #7
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
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 !
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h08   #8
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 099
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 099
Points : 1 922
Points : 1 922
Qui plus est, une requête qui plante est plus "visible" dans les tests qu'un mauvais tri...

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h26   #9
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
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 :
GROUP BY champ1, champ2, ..., champ 32
ou en faisant :
Code :
GROUP BY 1, 2, 3,..., 32
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h30   #10
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
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.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h36   #11
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
En effet dans mon SELECT j'ai :

Code :
1
2
3
SELECT 
id_image, 
id_dossier,
etc

Comment faire alors ? ...
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 15/12/2011, 11h39   #12
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Sans la requete que vous utilisez on ne peut pas deviner
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2011, 11h41   #13
Membre Expert
 
Inscription : août 2009
Messages : 779
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 779
Points : 1 098
Points : 1 098
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.
Rei Ichido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h48   #14
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
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 :
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;
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 15h26   #15
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
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
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2011, 16h20   #16
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Un MAX de MAX, dans le cas présent, ce n'est pas valable.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 18h01   #17
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
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 :
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;
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 18h03   #18
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
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 :
GROUP BY id_image, id_dossier, code_image
Toujours l'erreur ORA-00937
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 22h40   #19
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
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..)
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h18   #20
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
Voici ma requête complète :

Code :
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
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h59.


 
 
 
 
Partenaires

Hébergement Web