Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous
Quelqu’un sait-il svp la façon dont il faut aborder la problématique suivante ? :
Je cherche àfaire une sorte de jointure entre deux tables qui ont été chargées précédemment à partir de 2 fichier XLS.
En effet pour deux colonnes (2 données) de ma table B, je souhaiterai flager toutes les données qui sont présentes dans ma table ''référentiel'' précédemment chargée a savoir une colonne de ma table A …
Or, je ne sais pas comment évoquer une table existante dans les règles du load d'un fichier... (j'ai l'impression que c'est interdit)
De même, je ne sais pas faire appel a 2 tables dans le load d'une table 'résident'
Quelqu'un peut il svp me mettre sur une piste svp ? un exemple ?
Merci beaucoup
Sebastien
Visiblement le fichier Excel contenant le résultat n'a pas été chargé...
Si je me refert donc à votre demande initiale qui était :
En effet pour deux colonnes (2 données) de ma table B, je souhaiterai flager toutes les données qui sont présentes dans ma table ''référentiel'' précédemment chargée a savoir une colonne de ma table A…
Admettions que nous donnions au flag la valeur :
- 0 si TRANSFEROR et TRANSFEREE ne sont pas dans le champ TRANSF de la table A
- 1 si TRANSFEROR ou TRANSFEREE est dans le champ TRANSF de la table A
- 2 si TRANSFEROR et TRANSFEREE est dans le champ TRANSF de la table A
Dans le script de chargement des données de la table B, vous pouvez utiliser cette formule :
LOAD SECURITY,
TRANSFEROR,
TRANSFEREE,
if(
Exists(TRANSF, TRANSFEROR) and Exists(TRANSF, TRANSFEREE),
1,
if(
Exists(TRANSF, TRANSFEROR) or Exists(TRANSF, TRANSFEREE),
2,
0)) as Flag
FROM B.TXT (txt);
J'espère que cela pourra vous aider un peu plus...
Martin Favier
Bonjour Sebastien,
Je viens de vous répondre sur votre autre post.
J'espère que ceci vous aiguillera dans vos recherches.
Martin Favier
Pour plus de simplicité, je vous remet ici le contenu :
sebtillier a écrit:
En effet pour deux colonnes (2 données) de ma table B, je souhaiterai flager toutes les données qui sont présentes dans ma table ''référentiel'' précédemment chargée a savoir une colonne de ma table A …
Or, je ne sais pas comment évoquer une table existante dans les règles du load d'un fichier... (j'ai l'impression que c'est interdit)
Vous pouvez pour cela utiliser la fonction Exists().
Je pourrais vous donner plus de détails sur cette fonction si vous nous transmettez la structure de vos fichiers Excel.
sebtillier a écrit:
De même, je ne sais pas faire appel a 2 tables dans le load d'une table 'résident'
L'instruction Resident permet de travailler sur une table déjà chargée dans la mémoire de QV. Si vous voulez travailler sur deux tables, vous devrez plutôt utiliser les jointures ou concatenations (JOIN, CONCATENATE)
Martin Favier
Merci beaucoup Martin
Ci joint les structures des deux fichiers.
Dans le referentiel A, la colonne que je souhaite matcher ('' TRANSF'' )
est en rouge.
Pour le fichier B, voici un extrait du loader mis en place.
B :
LOAD
replace(@18:31,'-','') as TRANSF1,
replace(@36:49,'-','') as TRANSF2
num(@53:62),
num(@63:74) as FEES,
RecNo() as enreg
FROM
(fix, codepage is 1252);
Si TRansf1 et Transf2 sont present dans TRANSF du fichier A, alors, je
vais devoir dans une feuille excel de restitution qui reprendra les ligne
de B, restituer ''FEES'' sur deux lignes (cad diviser le FEES par 2 et
creer une ligne pour TRANSF1, une autre ligne pour TRANSF2). Si seul TRANSF
1 ou TRANSF2 sont trouvés dans le referentiel, alors, une seule ligne en
sortie avec le FEES associé.
J'avais donc dans l'idée de creer une colonne lors du load de B afin de la
valoriser, par exemple, pour chaqune des ses lignes "2" si les deux champs
TRANSF1 et TRANSF2 de la ligne etaient trouvés dans A.
Je suis preneur de votre proposition de m'envoyer un exemple de
l'utilisation de la fonction Exists, La doc sur ce point ne me permets pas
en l'etat d'avancer veritablement.
Merci encore
Sebastien
(See attached file: B.TXT)(See attached file: A.xls)
- Re: flager les données qui sont
présentes dans une table ''référentiel''
(Internet)
qcwebmaster
A :
Sebastien TILLIER
15/01/2013 11:04
Veuillez répondre à jive-1043897007-24f1-2-6fmu
Auriez-vous un aperçu du résultat souhaité ?
Martin Favier
Re bonjour Martin
Voici donc de nouvelles versions (plus simples des fichiers A et B) ainsi
surtout qu'une illustration de la feuille excel attendue en sortie. (avec
dans la feuille result, quelques commentaires)
La dificulté pour moi reside surtout dans la facon d'aborder le cas N° 1...
cas faire des jointures
Merci encore
Sebastien
(See attached file: B.TXT)(See attached file: A.xls)(See attached file:
result.xls)
- Re: flager les données qui sont
présentes dans une table ''référentiel''
(Internet)
qcwebmaster
A :
Sebastien TILLIER
15/01/2013 12:08
Veuillez répondre à jive-1043897007-24f1-2-6fnm
Merci,
J'essaie de regarder ça ce soir et reviens vers vous...
Martin Favier
Visiblement le fichier Excel contenant le résultat n'a pas été chargé...
Si je me refert donc à votre demande initiale qui était :
En effet pour deux colonnes (2 données) de ma table B, je souhaiterai flager toutes les données qui sont présentes dans ma table ''référentiel'' précédemment chargée a savoir une colonne de ma table A…
Admettions que nous donnions au flag la valeur :
- 0 si TRANSFEROR et TRANSFEREE ne sont pas dans le champ TRANSF de la table A
- 1 si TRANSFEROR ou TRANSFEREE est dans le champ TRANSF de la table A
- 2 si TRANSFEROR et TRANSFEREE est dans le champ TRANSF de la table A
Dans le script de chargement des données de la table B, vous pouvez utiliser cette formule :
LOAD SECURITY,
TRANSFEROR,
TRANSFEREE,
if(
Exists(TRANSF, TRANSFEROR) and Exists(TRANSF, TRANSFEREE),
1,
if(
Exists(TRANSF, TRANSFEROR) or Exists(TRANSF, TRANSFEREE),
2,
0)) as Flag
FROM B.TXT (txt);
J'espère que cela pourra vous aider un peu plus...
Martin Favier
Bonjour et merci,
Je vais regarder (je n'etais pas present hier)
Concernant le pbl de ''chargement'' du tableau Excel Result, Je l'avais
join au mail. Est-ce bien la procedure pour partager des documents ?
Si il me faut par la suite proceder autrement, n'(hesitez pas svp a me le
dire).
Bonne reception
Sebastien
- Re: flager les données qui sont
présentes dans une table ''référentiel''
(Internet)
qcwebmaster
A :
Sebastien TILLIER
15/01/2013 21:23
Veuillez répondre à jive-1043897007-24f1-2-6fug