2017-10-12 7 views
0

Je suis en train d'essayer un processus avec powercenter designer mais je n'obtiens pas l'objectif désiré.Transformations avec les valeurs désirées

J'ai ces données initiales:

CODE CODE2 OPTION 
001  A  89 
001  A  55 
001  A  12 
002  B  25 
002  A  59 
025  A  44 

Je dois l'obtenir pour le code de faire ce qui suit: s'il y a plusieurs enregistrements par CODE, alors vous devez mettre la valeur 1111 dans le domaine OPTION2 à la enregistrer avec la valeur la plus élevée dans le champ OPTION, s'il n'y a qu'un seul enregistrement dans CODE, il met également la valeur 1111. Je le fais en faisant une transformation SORTER dans powercenter, pas compliqué. Ce que je ne peux pas faire est l'étape suivante. Le deuxième enregistrement avec la valeur la plus élevée dans le champ OPTION correspond à la valeur du premier champ et ainsi de suite.

SORTIE:

CODE CODE2 OPTION OPTION2 
001  A  89  111111 
001  A  55  89 
001  A  12  55 
002  A  59  111111 
002  B  25  59 
025  A  44  111111 

Comment pourrais-je obtenir? Quelles transformations dois-je utiliser?

Merci! ^^

Répondre

0

Vous pouvez le trier par code et par ordre décroissant d'option. Ensuite, dans une variable d'expression, maintenez la valeur de la valeur de l'enregistrement précédent dans une variable.

v_OPTION2 = IIF(ISNULL(v_PREV_CODE) OR CODE != v_PREV_CODE, 
       111111, 
       v_PREV_OPTION 
      ) 
out_OPTION2 = v_OPTION2 
v_PREV_OPTION = OPTION 
v_PREV_CODE = CODE