on 2022 May 16 9:43 AM
Hi i am trying to calculate total Qty in MSEG table based on indicator and i wrote ALV report in ABAP its working fine , but my requirement is to write it in AMDP and consume those result in CDS view. please help me how to write below ABAP code in SQL query .
LOOP AT it_mseg INTO wa_mseg WHERE matnr = wa_mslb-matnr
AND werks = wa_mslb-erks AND lifnr = wa_mslb-lifnr.
IF sy-subrc EQ 0.
CASE wa_mseg-shkzg.
WHEN 'S'. qas = qas + wa_mseg-menge.
WHEN 'H'. qah = qah + wa_mseg-menge.
ENDCASE.
ENDIF.
CLEAR: wa_mseg.
ENDLOOP.
Thank you.
Request clarification before answering.
Hi,
please try something like this:
select
sum( case shkzg when 'S' then menge else 0 end ) as QAS
, sum( case shkzg when 'H' then menge else 0 end ) as QAH
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Thank you for the Answer but it did not gave expected result instead i wrote this query and got my answer and thank you for your input.
itab1 = select mandt ,werks, matnr, lifnr, shkzg, sum (menge) as totalqty
from nsdm_v_mseg
WHERE sobkz = 'O' AND matnr = p_matnr AND lifnr = p_lifnr
GROUP BY mandt, werks, matnr, lifnr, shkzg;
itab2 = SELECT mandt, werks, matnr, lifnr, totalqty FROM :itab1 WHERE matnr = p_matnr AND lifnr = p_lifnr AND shkzg = 'S';
itab3 = SELECT mandt, werks, matnr, lifnr, totalqty FROM :itab1 WHERE matnr = p_matnr AND lifnr = p_lifnr AND shkzg = 'H';
itab4 = SELECT a.mandt, a.werks, a.matnr, a.lifnr, ( b.totalqty - a.totalqty) as totalqty FROM :itab2 as a
INNER JOIN :itab3 as b ON a.matnr = b.matnr;
return select * from :itab4;
User | Count |
---|---|
92 | |
11 | |
9 | |
9 | |
7 | |
5 | |
4 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.