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: 

Aggregate Functions in SELECT

former_member1330001
Participant
0 Kudos

Hi Friends,

Is it possible to have an aggregate function while using Inner join and GROUP BY? Its not working for me.

Prompt replies would be rewarded.

Thanks in advance.

Regards

Tamilarasan.

Message was edited by: Tamilarasan Lakshmanan

1 ACCEPTED SOLUTION

Former Member
0 Kudos

I'm not sure what you mean by 'not working', but you can try something like:


* select data: parked documents in value type 54 (invoice) --------
  select  fmifiit~knbelnr bkpf~bstat
      count( distinct fmifiit~fmbelnr )
   into (wa_error-belnr, wa_error-bstat, wa_error-count)
   from fmifiit inner join bkpf
      on ( fmifiit~bukrs = bkpf~bukrs and
           fmifiit~kngjahr = bkpf~gjahr and
           fmifiit~knbelnr = bkpf~belnr )
      where fmifiit~knbelnr in s_belnr
        and fmifiit~bukrs = p_bukrs
        and fmifiit~kngjahr = p_gjahr
        and ( fmifiit~wrttp = '54' or
              fmifiit~wrttp = '57' or
              fmifiit~wrttp = '66' )
        and bkpf~bukrs = p_bukrs
        and bkpf~gjahr = p_gjahr
        and bkpf~belnr in s_belnr
        and bkpf~budat in s_budat
        and ( bkpf~bstat = 'V' or bkpf~bstat = 'W' or bkpf~bstat = 'Z' )
      group by fmifiit~knbelnr
               bkpf~bstat
      order by fmifiit~knbelnr.

Rob

5 REPLIES 5

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

I'm seeing the same. In my sample program it is aggregating on the first column, but not collecting the quantity in the second column.



report zrich_0002.

data: begin of itab occurs 0,
      gltrp type afko-gltrp,
      psmng type afpo-psmng,
      end of itab.

select-options: s_gltrp for itab-gltrp.


select afko~gltrp  sum( afpo~psmng )
      into corresponding fields of table itab
             from afko
                  inner join afpo
                     on afko~aufnr = afpo~aufnr
                           where afko~gltrp in s_gltrp
                                group by afko~gltrp.

check sy-subrc = 0.

Regards,

Rich Heilman

Former Member
0 Kudos

I'm not sure what you mean by 'not working', but you can try something like:


* select data: parked documents in value type 54 (invoice) --------
  select  fmifiit~knbelnr bkpf~bstat
      count( distinct fmifiit~fmbelnr )
   into (wa_error-belnr, wa_error-bstat, wa_error-count)
   from fmifiit inner join bkpf
      on ( fmifiit~bukrs = bkpf~bukrs and
           fmifiit~kngjahr = bkpf~gjahr and
           fmifiit~knbelnr = bkpf~belnr )
      where fmifiit~knbelnr in s_belnr
        and fmifiit~bukrs = p_bukrs
        and fmifiit~kngjahr = p_gjahr
        and ( fmifiit~wrttp = '54' or
              fmifiit~wrttp = '57' or
              fmifiit~wrttp = '66' )
        and bkpf~bukrs = p_bukrs
        and bkpf~gjahr = p_gjahr
        and bkpf~belnr in s_belnr
        and bkpf~budat in s_budat
        and ( bkpf~bstat = 'V' or bkpf~bstat = 'W' or bkpf~bstat = 'Z' )
      group by fmifiit~knbelnr
               bkpf~bstat
      order by fmifiit~knbelnr.

Rob

0 Kudos

Ok, I got my sample working now. Check it out. I didn't like the "into corresponding fields"



report zrich_0002.

data: begin of itab occurs 0,
      gltrp type afko-gltrp,
      psmng type afpo-psmng,
      end of itab.

select-options: s_gltrp for itab-gltrp.


select afko~gltrp  sum( afpo~psmng )
      into  table itab
             from afko
                  inner join afpo
                     on afko~aufnr = afpo~aufnr
                           where afko~gltrp in s_gltrp
                                group by afko~gltrp.

check sy-subrc = 0.

Regards,

Rich Heilman

Former Member

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

Please make sure to award points for any helpful answers that might have helped you. If your problem is solved, please mark this post as solved. Thanks.

Regards,

Rich Heilman