sEÑORES TENGO EL SIGUIENTE DILEMA, LA TABLA SIGUIENTE
TABLA VIRGEN
Campo1 | Campo2 | Campo3 | Campo4
-----------------------------------------------------
AAA | G111 | SSS1 | 1.20
AAA | G111 | SSS1 | 2.30
AAA | G111 | SSS1 | 1.50
AAA | H555 | SSS1 | 1.30
BBB | F333 | GG1 | 1.80
BBB | F333 | GG1 | 1.40
BBB | F333 | GG1 | 1.60
CCC | R444 | KK2 | 1.30
CCC | R444 | KK2 | 1.70
CCC | R444 | KK2 | 1.60
CCC | R444 | KK2 | 2.30
lo que quiero es que se sume el Campo4, mientras el Campo1, el Campo2 y el Campo3 sean iguales; es decir tiene que resultar lo siguiente
TABLA PROCESADA - RESULTADO
Campo1 | Campo2 | Campo3 | Campo4
-------------------------------------------------------
AAA | G111 | SSS1 | 5.00
AAA | H555 | SSS1 | 1.30
BBB | F333 | GGG1 | 4.80
CCC | R444 | KK2 | 6.90
he hecho el loop siguiente:
Pero no funciona, luego hice esto:
Espero puedan ayudarme.
Saludos cordiales.
TABLA VIRGEN
Campo1 | Campo2 | Campo3 | Campo4
-----------------------------------------------------
AAA | G111 | SSS1 | 1.20
AAA | G111 | SSS1 | 2.30
AAA | G111 | SSS1 | 1.50
AAA | H555 | SSS1 | 1.30
BBB | F333 | GG1 | 1.80
BBB | F333 | GG1 | 1.40
BBB | F333 | GG1 | 1.60
CCC | R444 | KK2 | 1.30
CCC | R444 | KK2 | 1.70
CCC | R444 | KK2 | 1.60
CCC | R444 | KK2 | 2.30
lo que quiero es que se sume el Campo4, mientras el Campo1, el Campo2 y el Campo3 sean iguales; es decir tiene que resultar lo siguiente
TABLA PROCESADA - RESULTADO
Campo1 | Campo2 | Campo3 | Campo4
-------------------------------------------------------
AAA | G111 | SSS1 | 5.00
AAA | H555 | SSS1 | 1.30
BBB | F333 | GGG1 | 4.80
CCC | R444 | KK2 | 6.90
he hecho el loop siguiente:
Código:
LOOP AT gtd_TABLA0 ASSIGNING <fs_TABLA0>. AT FIRST.ENDAT. AT NEW CAMPO1. WA_1-CAMPO1 = < fs_TABLA0>-CAMPO1. ENDAT. AT NEW CAMPO2. WA_1-CAMPO2 = < fs_TABLA0>-CAMPO2. ENDAT. AT NEW CAMPO3. WA_1-CAMPO3 = < fs_TABLA0>-CAMPO3. ENDAT. SUMAT = SUMAT + < fs_TABLA0>-CAMPO4. AT END OF CAMPO3. ENDAT. AT END OF CAMPO2. ENDAT. AT END OF CAMPO1. ENDAT. AT LAST. WA_1-CAMPO4 = SUMAT. APPEND WA_1 TO GTD_TRESULTADO. CLEAR SUMAT. ENDAT. ENDLOOP.
Código:
gtd_TABLA0 = gtd_TABLA0. gtd_TABLA1 = gtd_TABLA0. gtd_TABLA2 = gtd_TABLA0. gtd_TABLA3 = gtd_TABLA0. SORT gtd_TABLA0 BY CAMPO1 CAMPO2 CAMPO3. SORT gtd_TABLA1 BY CAMPO1 CAMPO2 CAMPO3. SORT gtd_TABLA2 BY CAMPO1 CAMPO2 CAMPO3. SORT gtd_TABLA3 BY CAMPO1 CAMPO2 CAMPO3. LOOP AT gtd_TABLA0 ASSIGNING < fs_TABLA0>. LOOP AT gtd_TABLA1 ASSIGNING < fs_TABLA1> WHERE CAMPO1 = < fs_TABLA0>-CAMPO1. LOOP AT gtd_TABLA1 ASSIGNING < fs_TABLA2> WHERE CAMPO2 = < fs_TABLA1>-CAMPO2. LOOP AT gtd_TABLA1 ASSIGNING < fs_TABLA3> WHERE CAMPO3 = < fs_TABLA2>-CAMPO3. SUMAT_1 = SUMAT_1 + < fs_TABLA3>-CAMPO4. ENDLOOP. WA_1-BUKRS = < fs_TABLA3>-BUKRS. WA_1-CAMPO1 = < fs_TABLA3>-CAMPO1. WA_1-CAMPO2 = < fs_TABLA3>-CAMPO2. WA_1-CAMPO3 = < fs_TABLA3>-CAMPO3. WA_1-CAMPO4 = SUMAT. CLEAR SUMAT. APPEND WA_1 TO GTD_TRESULTADO. ENDLOOP. ENDLOOP. ENDLOOP.
Saludos cordiales.
Comentario