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

Développement de jobs Discussion :

Auto-jointure: derniere ligne non traitée


Sujet :

Développement de jobs

  1. #1
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut Auto-jointure: derniere ligne non traitée
    Bonjour,
    j'ai un problème lorsque j'effectue une auto-jointure sur un champ (qui n'est pas une clé ). Tout se passe bien sauf pour la dernière ligne qui passe en rejet? Si j'ajoute une nouvelle ligne n+1, la ligne n qui ne passait pas passe; et la ligne n+1 ne passe pas...

    Quelqu'un aurait-il déja eu ce problème? Est-ce que je passe à coté d'une grosse erreur sans m'en apercevoir?

    Merci d'avance

    (pb: chq ligne possede un numero id et un numero id2. Il peut y avoir plusieurs id2 pour un id. Le but étant de mettre à jour un champ "test" à 1 qd il y a plusieurs numero id2 pour un id.
    Je fais dc une auto-jointure sur le champ id et un filtre !a.id2.equals(b.id2) dans le tmap)

  2. #2
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut
    Personne n'a eu ce pb?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Bonjour,

    Quel est le message d'erreur que tu obtiens ?
    Tu pourrais nous mettre une copie d'écran de ton job ainsi que du paramétrage du tMap ?

    Sinon par rapport à ta problématique, est-ce qu'il ne serait pas plus simple et plus performant d'utiliser juste un tAggregateRow qui conterait le nombre de lignes par valeur du champ id, de stocker le résultat dans un fichier sous la forme (id, flag (0/1)), puis d'utiliser ce fichier en lookup pour mettre à jour tes données ?

    Merci,
    Nicolas

  4. #4
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut
    Bonjour,
    en fait, je n'ai aucun message d'erreur. Je m'aperçoit seulement que la dernière ligne passe en rejet.

    Voici le schema que j'utilise.
    Nom : SCHEMA.JPG
Affichages : 77
Taille : 20,6 Ko

    (il y a une jointure interne sur id.)

    Sinon, oui il sera effectivement plus rapide d'ajouter un tAggregaterow sur le champ id. je vais tester cette solution de suite et voir si cela marche mieux.

    Merci pour ta réponse rapide.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut
    Je viens de tester en mettant un tAggregaterow mais cela ne marche pas comme je le voudrais. En effet, si on effectue l'aggregation avant la jointure, on ne peut pas savoir quels id possèdent plusieurs id2. Je suis donc obligé de faire une autojointure (il me semble).

    Voici le schema du tmap:

    Nom : TMAP.JPG
Affichages : 78
Taille : 164,3 Ko

    (ici le champ test est mis à 2 pour les id présentant plusieurs id2)

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Je ne suis pas certain que tu aies bien paramétré ton tAggregaterow ?

    A priori, en entrée du composant, tu ne dois avoir que les champs id et id2. Groupé par id, et en sortie je dirais qu'il faut appliquer la fonction compter(distinct) sur le champ id2.

    Tu as donc en sortie un flux avec 1 ligne par valeur du champ id, et le nombre de id2 différents auquel chaque id est lié.

    C'est ce flux que tu utilises ensuite en lookup.

    Nicolas

  7. #7
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut
    Ok ca marche!!!
    je renvoyais le champ id2 tel quel. Du coup qd je faisais row1.id2!=row2.id2, il y avait toujours une ligne non mise à jour pour chaque paquet d'id présentant des id2 différents.
    merci pour ton aide

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

Discussions similaires

  1. [XL-2010] Trouver la dernier ligne non nulle et remplir les trois colonne a droite par des zero
    Par foxrever dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 15/06/2014, 00h02
  2. [XL-2007] Derniere ligne non vide=nbre de ligne max dans excel
    Par polo92 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/02/2014, 15h57
  3. selectionner la derniere ligne non vide
    Par kefinacib dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2012, 03h33
  4. Calcul de la somme d'une colonne apres la derniere ligne non vide
    Par lilp1 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/06/2009, 11h14
  5. [VBA-E]derniere ligne non vide
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2006, 10h48

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