Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

how to calculate no.of records for a specific company Code and Transaction

Former Member
0 Kudos

Hi All,

Could you please help me how to calculate or count no.of records, in a table which are having a specific Company Code and Transaction Code and populate in an output table displaying that these many records are present for this company code and Transaction code.

The table is having the data like this:

LOB TRAN CODE COUNT

X1 1

X1 2

X1 3

X1 4

F1 NB 5

F1 NB 6

F1 NB 7

F1 NB 8

F1 NB 9

F1 NB 10

F1 NB 11

F1 NB 12

F1 NB 13

F1 NB 14

F1 NB 15

F1 NB 16

F1 NB 17

F1 NB 18

F1 NB 19

F1 NB 20

F1 NB 21

F1 NB 22

F1 NB 23

F1 24

F1 25

F1 26

F1 27

In the above table there are totally 27 records,where as the no.of records with F1 as company code and NB as transaction code are 18..so i have to display like F1 NB and 18 as one record as output.

Thanks and Regards,

Johny

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Dude,

Data : V_count type i.

U loop at the internal table.

Inside the loop U write the READ Statement with key F1 as company code and NB as transaction code .

if sy-subrc is initial.

V_count = V_count + 1.

endif.

Endloop.

write : V_count.

Hope this solves UR Problem.

7 REPLIES 7

Former Member
0 Kudos

Hi Dude,

Data : V_count type i.

U loop at the internal table.

Inside the loop U write the READ Statement with key F1 as company code and NB as transaction code .

if sy-subrc is initial.

V_count = V_count + 1.

endif.

Endloop.

write : V_count.

Hope this solves UR Problem.

Former Member
0 Kudos

DATA : COUNT TYPE I.

If it is database table write this below code.

SELECT LOB TRAN CODE COUNT

COUNT( * ) AS count

FROM zppt_tran_001

INTO CORRESPONDING FIELDS OF TABLE i_final

WHERE lob = 'F1'

GROUP BY LOB TRAN CODE COUNT.

If it is internal table

loop at i_final where lob = 'F1'.

count = count + 1.

endloop.

Edited by: murali papana on Sep 4, 2008 1:14 AM

Former Member
0 Kudos

Hello


data: counter type i.
loop at itab where lob = 'F1' and trancode = 'NB'.
  counter = counter + 1.
endloop.
write: counter.

Former Member
0 Kudos

You can go for Control Breaks for your requirement.

First sort the internal table by company code and transaction. Declare a counter variable.

Now loop the internal table and increment the counter variable. within the loop use AT END OF tcode.......ENDAT. Within the control break append the counter variable as well as the company code and tcode to some other ITAB and clear the counter.

This will give you the total number of records for a combination of co code and tcodes.

This will be a good reference for your requirement. What I am doing here is, for each Vendor i am calculating total number of deliveries and amounts for that vendor. For every new vendor i am writing the ouput on to a list and clearing the counter variables.


  LOOP AT t_vend_prod_grp INTO fs_vend_prod_grp.

    w_total_delv = w_total_delv + 1.
    w_total_amt = w_total_amt + fs_vend_prod_grp-dmbtr.

    AT NEW matkl.

      w_mat_grp = fs_vend_prod_grp-matkl.
* To display the material group and the header texts for the data
* grouped by material group and vendor.
      SKIP 1.
      WRITE:  text-mtk  COLOR COL_HEADING
                              INTENSIFIED,
            / w_mat_grp COLOR COL_NORMAL
                              INTENSIFIED OFF.
      SKIP 1.

      FORMAT COLOR COL_HEADING ON INTENSIFIED.
      ULINE  1(54).
      WRITE:/ sy-vline,
            2 text-ven,
           12 sy-vline,
              text-dlv,
           26 sy-vline,
           38 text-amt,
              sy-vline,
           46 text-cur,
           54 sy-vline.
      ULINE /1(54).
      FORMAT COLOR COL_HEADING OFF INTENSIFIED.

    ENDAT.                             " AT NEW MATKL

    AT END OF lifnr.

* To display the actual data for the grouping based on Material group
* and Vendor.
      FORMAT COLOR COL_NORMAL ON INTENSIFIED OFF.
      WRITE: / sy-vline,
             2 fs_vend_prod_grp-lifnr COLOR COL_KEY,
            12 sy-vline,
               w_total_delv,
            26 sy-vline,
               w_total_amt CURRENCY text-usd,
               sy-vline,
            46 text-usd,
            54 sy-vline.
      FORMAT COLOR COL_NORMAL OFF INTENSIFIED OFF.

      CLEAR: w_total_amt,
             w_total_delv.
    ENDAT.                             " AT END OF LIFNR

  ENDLOOP.                             " LOOP AT T_VEND_PROD_GRP

Former Member
0 Kudos

HI Johny,

just paste this sample code in ABAP editor and eexcute...


REPORT ZSBN_TEST_1 .


DATA : BEGIN OF ITAB OCCURS 0,
        LOB(3),
        TCODE(3),
        CNT(6),
       END OF ITAB.

DATA : ITAB_LOB   LIKE ITAB OCCURS 0 WITH HEADER LINE,
       ITAB_TCODE LIKE ITAB OCCURS 0 WITH HEADER LINE,
       ITAB_FIN   LIKE ITAB OCCURS 0 WITH HEADER LINE,
       I(6).




ITAB-LOB = 'F1'.
ITAB-TCODE = 'N1'.

DO 10 TIMES.
  ITAB-CNT = ITAB-CNT + 2.
  APPEND ITAB.
ENDDO.

ITAB-LOB = 'F1'.
ITAB-TCODE = 'N2'.
DO 3 TIMES.
  ITAB-CNT = ITAB-CNT + 2.
  APPEND ITAB.
ENDDO.


WRITE : 'BEFORE PRCOESSING'.
LOOP AT ITAB.
  WRITE 😕 ITAB-LOB, ITAB-TCODE, ITAB-CNT.
ENDLOOP.

*&*& FRO LOB
ITAB_LOB[] = ITAB[].
SORT ITAB_LOB BY LOB.
DELETE ADJACENT DUPLICATES FROM ITAB_LOB COMPARING LOB.

*&*& FRO TCODE
ITAB_TCODE[] = ITAB[].
SORT ITAB_TCODE BY TCODE.
DELETE ADJACENT DUPLICATES FROM ITAB_TCODE COMPARING TCODE.

*&*& FOR COUNT
LOOP AT ITAB_LOB.
  LOOP AT ITAB_TCODE.
    LOOP AT ITAB WHERE LOB   EQ ITAB_LOB-LOB
                  AND  TCODE EQ ITAB_TCODE-TCODE.

      I = I + 1.

    ENDLOOP.
    ITAB_FIN-LOB = ITAB_LOB-LOB.
    ITAB_FIN-TCODE = ITAB_TCODE-TCODE.
    ITAB_FIN-CNT = I.
    APPEND ITAB_FIN.
    CLEAR : ITAB_FIN, I.

  ENDLOOP.
ENDLOOP.

SKIP 2.
WRITE 😕 'AFTER PRCOESSING'.
LOOP AT ITAB_FIN.
  WRITE 😕 ITAB_FIN-LOB, ITAB_FIN-TCODE, ITAB_FIN-CNT.
ENDLOOP.

reply back..

With Rgds,

S.Bharani

Former Member
0 Kudos

Hi Every one,

Thank you very much for your swift reponse..

but here I cannnot know whether there are records with F1 as company code or not.

So,with out knowig how to do..the sum for all those records with one specific code and Transaction code.

Regards,

Johny

0 Kudos

This is the exact reason why i suggested you to go for CONTROL BREAKS. This works for the combination of the two fields. So you don't have to HARDCODE the values into your logic. Just defining the control break would do the job. It will just calculate the total records for whatever company code and tcodes that are there in the internal table.