2017-08-06 5 views
0

J'ai des données d'entrée comme ci-dessous
CovNo type Price
10 med tot 110 10 med tot 120 10 dent tot 140 20 med tot 110 20 dent tot 130 20 med tot 120

Comment puis-je générer les données de sortie comme ci-dessous
CovNo type Price
10 med tot 110 10 med tot 120 10 dent tot 140 10 Group tot 370 20 med tot 110 20 dent tot 130 20 med tot 120 20 Group tot 360

connaîtrai-je la logique de mettre en œuvre ce qui précède scénario dans Datastage.
Comment ajouter une nouvelle ligne comme total du groupe à l'aide de données étape

Merci à l'avance,
Shanmugam

Répondre

0

Selon la source de vos données d'une façon pourrait être de le résoudre avec SQL si votre source est une table. Si vous le souhaitez ou avez besoin de le faire dans DataStage uniquement, vous pouvez saisir vos données à l'aide d'une étape de copie et appliquer une sortie à une étape d'agrégation dans laquelle vous calculez les sommes par groupe. L'autre sortie de la copie est ensuite combinée avec les résultats de l'agrégateur avec une étape d'entonnoir (qui se comporte comme une union en SQL). C'est tout.

0

Pour l'exemple ci-dessus, nous pourrions le réaliser dans le transformateur en utilisant les fonctions SaveInputRecord() et GetSavedInputRecord() et LastRowInGroup().

IBM a fourni un perfect example pour ce type de scénario.

Remarque: Les performances sont affectées si les données sont volumineuses car elles utilisent la mémoire cache. Donc, si vos données sont énormes, il vaut mieux diviser la source et effectuer une jointure après l'agrégation ou vous pouvez facilement le faire en utilisant sql si votre source est une base de données.