Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Je travaille sur un projet qui me dépasse un peu, et j'ai une problème sur la conception des données dans le script.
Peut être pourriez-vous m'aider.
J'ai une table comme celle-ci :
Article | Caractéristique | Valeur caractéristique |
---|---|---|
40312 | PHOTOCONNA | USB2 TYPE A M |
40312 | PHOTOCONNB | USB2 TYPE A F |
40312 | LONGCABLE | 12 |
40312 | COULEUR | Blanc |
40312 | OR | Non |
40312 | CONFIG | Configurateur |
Je souhaiterai à partir du script obtenir ceci :
CART | PHOTOCONNA | PHOTOCONNB | LONGCABLE | COULEUR | OR | CONFIG |
---|---|---|---|---|---|---|
40312 | USB2 TYPE A M | USB2 TYPE A F | 12 | Blanc | Non | Configurateur |
De plus en fonction de l'article (clé) il y a plus ou moins de caractéristiques (ici 6 caractéristiques), mais cela peu aller de aucune à 10.
Est-ce possible simplement ?
Merci pour toute aide que vous pourrez m'apporter.
Christophe
Bonjour tu peux faire ça :
original:
LOAD * INLINE [
Article, Caractéristique, Valeur caractéristique
40312, PHOTOCONNA, USB2 TYPE A M
40312, PHOTOCONNB, USB2 TYPE A F
40312, LONGCABLE, 12
40312, COULEUR, Blanc
40312, OR, Non
40312, CONFIG, Configurateur
50201, PHOTOCONNA, USB3 TYPE A Z
50201, PHOTOCONNB, USB4 TYPE A U
50201, LONGCABLE, 24
50201, COULEUR, Blanc
50201, OR, OUI
50201, CONFIG, Configurateur
];
temp1:
generic load * resident original;
result:
load distinct Article resident original;
drop table original;
FOR i = 0 to NoOfTables()
TableList:
LOAD TableName($(i)) as Tablename AUTOGENERATE 1
WHERE WildMatch(TableName($(i)), 'temp1.*');
NEXT i
FOR i = 1 to FieldValueCount('Tablename')
LET vTable = FieldValue('Tablename', $(i));
LEFT JOIN (result) LOAD * RESIDENT $(vTable);
DROP TABLE $(vTable);
NEXT i
drop table TableList;
Bonjour,
Combien y a t-il de caractéristiques distinctes ?
Bonjour tu peux faire ça :
original:
LOAD * INLINE [
Article, Caractéristique, Valeur caractéristique
40312, PHOTOCONNA, USB2 TYPE A M
40312, PHOTOCONNB, USB2 TYPE A F
40312, LONGCABLE, 12
40312, COULEUR, Blanc
40312, OR, Non
40312, CONFIG, Configurateur
50201, PHOTOCONNA, USB3 TYPE A Z
50201, PHOTOCONNB, USB4 TYPE A U
50201, LONGCABLE, 24
50201, COULEUR, Blanc
50201, OR, OUI
50201, CONFIG, Configurateur
];
temp1:
generic load * resident original;
result:
load distinct Article resident original;
drop table original;
FOR i = 0 to NoOfTables()
TableList:
LOAD TableName($(i)) as Tablename AUTOGENERATE 1
WHERE WildMatch(TableName($(i)), 'temp1.*');
NEXT i
FOR i = 1 to FieldValueCount('Tablename')
LET vTable = FieldValue('Tablename', $(i));
LEFT JOIN (result) LOAD * RESIDENT $(vTable);
DROP TABLE $(vTable);
NEXT i
drop table TableList;
Bonjour Almamy,
Il y a 32 caractéristiques possibles, mais à terme cela peu évoluer.
Merci
Christophe
Bonjour Mambi,
Je n'ai pas tout compris au code, mais cela fonctionne très bien.
Merci beaucoup
Christophe