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 :

ajouter des champs autoincrémentés sur certaines données


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut [résolu] - ajouter des champs autoincrémentés sur certaines données
    Bonjour à tous,

    je souhaite faire la chose suivante :

    Je pars de çà :
    date | recette
    01/01/09 | 10
    01/01/09 | 20
    01/01/09 | 30
    02/01/09 | 15
    02/01/09 | 50

    et je souhaite arriver à çà :
    generalid | dateid | date | recette
    1 | 1 | 01/01/09 | 10
    2 | 2 | 01/01/09 | 20
    3 | 3 | 01/01/09 | 30
    4 | 1 | 02/01/09 | 15
    5 | 2 | 02/01/09 | 50

    Quel composant dois-je utiliser ? quelle est la marche à suivre ?

    Merci d'avance pour votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    Bonjour,

    Pour le generalid, c'est très simple, c'est un champ auto-incrémenté dans ta BDD.

    Pour le dateid, je pense que tu vas devoir passer par un compteur. Pour cela, il faut que tu fasses un tri sur la date, et que tu réinitialises ton compteur à chaque changement de date.

    Ca pourrait donner quelque chose de ce genre là :
    Var.Compteur = ( ( DateEnCours != DatePrecedente ) ? 1 : Compteur++ )

    En espérant avoir pu t'aider.
    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    mmm...

    en fait c'est pas loin de ce que je veux faire... peut-être que mon exemple n'est pas très bon, ou pas très claire, le voici en plus simple :

    j'ai :

    id | nombre
    1 | 12345
    1 | 412
    1 | 2345
    2 | 45
    2 | 123
    2 | 345
    2 | 2345

    et je veux :

    id | nombre | ordre
    1 | 12345 | 3
    1 | 412 | 1
    1 | 2345 | 2
    2 | 45 | 1
    2 | 345 | 3
    2 | 123 | 2
    2 | 2345 | 4

    comment faire le tri pour un id donné des nombres croissant ?
    comment par la-même mettre un compteur dessus ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    Dans ton exemple, tu tries par id et nombre croissant. Tu vas donc te retrouver avec ceci :
    id | nombre
    1 | 412
    1 | 2345
    1 | 12345
    2 | 45
    2 | 123
    2 | 345
    2 | 2345

    Ensuite, tu déclares un compteur et une variable qui te permet de stocker la valeur de l'id, d'un enregistrement à l'autre, et ça te donne une condition :
    ( (SAVE_id != id) ? 1 : Compteur++ )

    Tu vas donc te retrouver avec ceci :
    id | nombre | Compteur
    1 | 412 | 1
    1 | 2345 | 2
    1 | 12345 | 3
    2 | 45 | 1
    2 | 123 | 2
    2 | 345 | 3
    2 | 2345 | 4

  5. #5
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Citation Envoyé par briceg Voir le message
    comment faire le tri pour un id donné des nombres croissant ?
    Avec un tSortRow
    Citation Envoyé par briceg Voir le message
    comment par la-même mettre un compteur dessus ?
    Pour ce genre de problématique, j'ai utilisé la routine Numeric.sequence("s1",1,1) dans un tMap.

    Nicolas

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    OK pour le tSortRow

    Par contre, j'ai un peu mal concernant la routine :

    Numeric.sequence("s1",1,1) je pensais qu'il fallait l'adapter ainsi (dans mon exemple) -> Numeric.sequence(nombre,1,1) mais je n'ai pas le résultat escompté, dès il me 1 partout, dès fois, 2.. bref j'ai loupé un métro :-)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    oups désolé, il fallait faire le Numeric.sequence sur id et non le nombre. çà semble OK...


    Petite note au passage :
    Par contre, j'ai l'impression de passer mon temps à utiliser le tconvert de talend pour pouvoir utiliser l'une ou l'autre méthode,... par exemple Numeric.sequence(string,int, int) a nécessité que je repasse d'abord 'id' en string pour ensuite (après le tmap avec Numeric.sequence) le reconvertir en int... en fait çà m'arrive très souvent de faire çà... c'est normal ou il y a des moyens plus rapide avec d'autres méthodes ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    tu n'es pas obligé d'utiliser le composant tConvert. Tu peux utiliser les méthodes courantes de Java au sein de composants courants comme le tMap
    par exemple la méthode toString()
    row1.culotteEntiere.toString()

    pour cela, il faut se référer à la doc' Java de chaque type de données:
    http://java.sun.com/j2se/1.3/docs/ap...ng/String.html
    http://java.sun.com/j2se/1.3/docs/ap...g/Integer.html

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/03/2011, 13h02
  2. Réponses: 1
    Dernier message: 14/08/2006, 09h41
  3. [PHP-JS] ajouter des champ en cliquant sur un bouton?
    Par einsteineuzzz dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2006, 17h36
  4. Réponses: 44
    Dernier message: 19/10/2005, 10h54

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