<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic report performance in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939261#M388048</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there any way of improving performance for these set of statements.I need to retrieve the record with the max datab in A005 for the conditions in the select statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM A005 INTO TABLE IT_A005 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                          AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                          AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;               FOUND = 1.&lt;/P&gt;&lt;P&gt;               SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;               DELETE ADJACENT DUPLICATES FROM IT_A005 COMPARING  MATNR .&lt;/P&gt;&lt;P&gt;               LOOP AT IT_A005.&lt;/P&gt;&lt;P&gt;               KNUMH = IT_A005-KNUMH.&lt;/P&gt;&lt;P&gt;               ENDLOOP.&lt;/P&gt;&lt;P&gt;          ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 27 Feb 2007 22:07:47 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-02-27T22:07:47Z</dc:date>
    <item>
      <title>report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939261#M388048</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is there any way of improving performance for these set of statements.I need to retrieve the record with the max datab in A005 for the conditions in the select statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM A005 INTO TABLE IT_A005 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                          AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                          AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;               FOUND = 1.&lt;/P&gt;&lt;P&gt;               SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;               DELETE ADJACENT DUPLICATES FROM IT_A005 COMPARING  MATNR .&lt;/P&gt;&lt;P&gt;               LOOP AT IT_A005.&lt;/P&gt;&lt;P&gt;               KNUMH = IT_A005-KNUMH.&lt;/P&gt;&lt;P&gt;               ENDLOOP.&lt;/P&gt;&lt;P&gt;          ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:07:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939261#M388048</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:07:47Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939262#M388049</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead of using *, select fields individually and use MAX (datab) in the query with group by clause&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Something like this for e.g.:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: CARRID TYPE SFLIGHT-CARRID,&lt;/P&gt;&lt;P&gt;      MINIMUM TYPE P DECIMALS 2,&lt;/P&gt;&lt;P&gt;      MAXIMUM TYPE P DECIMALS 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT   CARRID MIN( PRICE ) MAX( PRICE )&lt;/P&gt;&lt;P&gt;INTO     (CARRID, MINIMUM, MAXIMUM)&lt;/P&gt;&lt;P&gt;FROM     SFLIGHT&lt;/P&gt;&lt;P&gt;GROUP BY CARRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / CARRID, MINIMUM, MAXIMUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or may be using subqueries&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM A005 INTO TABLE IT_A005 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;AND DATAB = ( SELECT MAX( DATAB) FROM A005 ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Santosh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        SKJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:22:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939262#M388049</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939263#M388050</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hey hii&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what's tht IT_ZCOSTHIST? r u looping around this internal table and putting ur SELECT query inside tht Ioop?&lt;/P&gt;&lt;P&gt;If case if so then u shud use FOR ALL ENTRIES.&lt;/P&gt;&lt;P&gt;SELECT * FROM A005 INTO TABLE IT_A005 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;AND MATNR = &amp;lt;b&amp;gt;IT_ZCOSTHIST-MATNR&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF IT_ZCOSTHIST[] is NOT INITIAL.&lt;/P&gt;&lt;P&gt;SELECT * FROM A005 INTO TABLE IT_A005 &lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN TABLE IT_ZCOSTHIST&lt;/P&gt;&lt;P&gt;WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;AND MATNR = &amp;lt;b&amp;gt;IT_ZCOSTHIST-MATNR&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_A005 COMPARING MATNR .&lt;/P&gt;&lt;P&gt;LOOP AT IT_A005 into wa_aoo5. (Use work area ALWAYS)&lt;/P&gt;&lt;P&gt;KNUMH = wa_A005-KNUMH.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;I am not understanding what exactly r u doing here?&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this will help.&lt;/P&gt;&lt;P&gt;bbye tac care&lt;/P&gt;&lt;P&gt;Ashwani&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:31:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939263#M388050</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:31:41Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939264#M388051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It seems like A005 is a pooled or a cluster table . I tried to apply a statement like this before but it gave an error. For some other tables same statement worked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM A914 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                     AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                     AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;                               ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;     ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          FOUND = 1.&lt;/P&gt;&lt;P&gt;          KNUMH = A914-KNUMH.&lt;/P&gt;&lt;P&gt;     ENDIF&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:32:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939264#M388051</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:32:48Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939265#M388052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

TYPES: begin of TP_IT_A005,
               DATAB like a005-datab,
               KNUMH like a005-knumh,
       end of TP_IT_A005.

DATA: it_a005 type sorted table of TP_IT_A005 ... (e.g. WITH HEADER LINE)
    with non-unique key DATAB.

SELECT DATAB KNUMH FROM A005 INTO TABLE IT_A005
   WHERE KAPPL = 'V'
   AND KSCHL = 'PR00'
   AND MATNR = IT_ZCOSTHIST-MATNR.

IF SY-SUBRC = 0.
  FOUND = 1.
*  SORT IT_A005 BY DATAB DESCENDING.
*  DELETE ADJACENT DUPLICATES FROM IT_A005 COMPARING MATNR .
*  LOOP AT IT_A005.
*    KNUMH = IT_A005-KNUMH.
*  ENDLOOP.
  describe table it_a005 lines l_lin.
  read table IT_A005 index l_lin.
ENDIF.


&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt; Pavel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:38:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939265#M388052</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:38:01Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939266#M388053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;get all the required data in an Internal Table and proceed from there by fetching the MAX DATAB value .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can always process ITABs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this will help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks 'n Regards,&lt;/P&gt;&lt;P&gt;Ashwani&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:42:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939266#M388053</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:42:32Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939267#M388054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_A005 COMPARING MATNR .&lt;/P&gt;&lt;P&gt;LOOP AT IT_A005 into wa_aoo5. (Use work area ALWAYS)&lt;/P&gt;&lt;P&gt;KNUMH = wa_A005-KNUMH.&lt;/P&gt;&lt;P&gt;I am not understanding what exactly r u doing here?&lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop there is only to retrieve the knumh of the only record left after deleting . Is there any other way to do it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:42:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939267#M388054</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:42:53Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939268#M388055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;if there is only one record left after deleting and you are sure tht there will be ONLY ONE record then u can go ahead and assign like &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ table IT_A005 into wa_a005 INDEX 1.&lt;/P&gt;&lt;P&gt;and use wa_a005-knumh field further in ur report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this will help.&lt;/P&gt;&lt;P&gt;thanks 'n regard,&lt;/P&gt;&lt;P&gt;Ashwani&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:47:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939268#M388055</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:47:24Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939269#M388056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SELECT * FROM ZCOSTHIST INTO TABLE IT_ZCOSTHIST WHERE MATNR IN S-MATNR  AND BUKRS IN S-BUKRS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;take the most recent record for a material in zcosthist&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SORT IT_ZCOSTHIST BY MATNR BUKRS ASCENDING DATERUN DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_ZCOSTHIST COMPARING MATNR BUKRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_ZCOSTHIST .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Compare zcosthist prices for PBTS,PSDI and PCSC with the prices&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in VK13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check for the condition record in the access tables A118,A005,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A903,A904,A006,A004,A914 and A029 and take the price from KONP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;based on the condition record number, compare the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;prices if the prices are not equal move the record to it_zcosthistm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for displaying or updating the records&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set cdate,ctime and cuser in zcosthist for the latest record of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;each material by taking the latest record in cdhdr based on the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;condition number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FOUND = 0.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING IT_ZCOSTHIST TO IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;SELECT * FROM A118 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                     AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                     AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;                ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;   EXIT.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      FOUND = 1.&lt;/P&gt;&lt;P&gt;      KNUMH = A118-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   SELECT * FROM A904 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                            AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                            AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;                       ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;         FOUND = 1.&lt;/P&gt;&lt;P&gt;         KNUMH = A904-KNUMH.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;     SELECT * FROM A914 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                     AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                     AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;                               ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;     ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          FOUND = 1.&lt;/P&gt;&lt;P&gt;          KNUMH = A914-KNUMH.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT * FROM A005 INTO TABLE IT_A005 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                              AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                   AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;               FOUND = 1.&lt;/P&gt;&lt;P&gt;               SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;               DELETE ADJACENT DUPLICATES FROM IT_A005 COMPARING MATNR.&lt;/P&gt;&lt;P&gt;               LOOP AT IT_A005.&lt;/P&gt;&lt;P&gt;               KNUMH = IT_A005-KNUMH.&lt;/P&gt;&lt;P&gt;               ENDLOOP.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            SELECT * FROM A006 INTO TABLE IT_A006 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                                 AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                          AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;               FOUND = 1.&lt;/P&gt;&lt;P&gt;               SORT IT_A006 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;               DELETE ADJACENT DUPLICATES FROM IT_A006 COMPARING MATNR.&lt;/P&gt;&lt;P&gt;               LOOP AT IT_A006.&lt;/P&gt;&lt;P&gt;               KNUMH = IT_A006-KNUMH.&lt;/P&gt;&lt;P&gt;               ENDLOOP.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              SELECT * FROM A004 INTO TABLE IT_A004 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                                   AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                       AND MATNR = IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;             IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                 FOUND = 1.&lt;/P&gt;&lt;P&gt;                 SORT IT_A004 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;                 DELETE ADJACENT DUPLICATES FROM IT_A004 COMPARING MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;                 LOOP AT IT_A004.&lt;/P&gt;&lt;P&gt;                   KNUMH = IT_A004-KNUMH.&lt;/P&gt;&lt;P&gt;                 ENDLOOP.&lt;/P&gt;&lt;P&gt;             ENDIF.&lt;/P&gt;&lt;P&gt;           ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF FOUND = 1.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM KONP WHERE KNUMH = KNUMH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        SELECT * FROM CDHDR WHERE OBJECTCLAS = 'COND_A' AND OBJECTID =&lt;/P&gt;&lt;P&gt;          KNUMH ORDER BY UDATE UTIME DESCENDING.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;         ENDSELECT.&lt;/P&gt;&lt;P&gt;         IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;             IT_ZCOSTHIST-CDATE = CDHDR-UDATE.&lt;/P&gt;&lt;P&gt;             IT_ZCOSTHIST-CTIME = CDHDR-UTIME.&lt;/P&gt;&lt;P&gt;             IT_ZCOSTHIST-CUSER = CDHDR-USERNAME.&lt;/P&gt;&lt;P&gt;             MODIFY IT_ZCOSTHIST INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF ( IT_ZCOSTHIST-LIST_PRICE &amp;lt;&amp;gt; KONP-KBETR ) .&lt;/P&gt;&lt;P&gt;           IT_ZCOSTHISTM-ACTUALPRICE = KONP-KBETR.&lt;/P&gt;&lt;P&gt;           APPEND IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;modify zcosthist to set cdate,ctime and cuser&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MODIFY ZCOSTHIST FROM TABLE IT_ZCOSTHIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The logic is very simple . First getting all the data to it_zcosthist then sorting and keeping only one record for each material in the internal table based on the daterun. Then for each record in the internal table . It gets the latest condition record from the corresponding access table then gets the price from KONP table based on the condition record number and compare the price in the internal table with the KONP price.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 22:50:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939269#M388056</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T22:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939270#M388057</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please use the following ... hope this will help&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM ZCOSTHIST INTO TABLE IT_ZCOSTHIST &lt;/P&gt;&lt;P&gt;WHERE MATNR IN S-MATNR &lt;/P&gt;&lt;P&gt;      AND BUKRS IN S-BUKRS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;take the most recent record for a material in zcosthist&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SORT IT_ZCOSTHIST BY MATNR BUKRS ASCENDING DATERUN DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_ZCOSTHIST COMPARING MATNR BUKRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_ZCOSTHIST .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Compare zcosthist prices for PBTS,PSDI and PCSC with the prices&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in VK13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check for the condition record in the access tables A118,A005,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A903,A904,A006,A004,A914 and A029 and take the price from KONP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;based on the condition record number, compare the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;prices if the prices are not equal move the record to it_zcosthistm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for displaying or updating the records&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set cdate,ctime and cuser in zcosthist for the latest record of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;each material by taking the latest record in cdhdr based on the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;condition number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FOUND = 0. (You shoud declare a constant like &amp;#145;c_zero&amp;#146; for any constants used)&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING IT_ZCOSTHIST TO IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;SELECT * FROM A118 into table IT_A118 &lt;/P&gt;&lt;P&gt;WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;     AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;     AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;EXIT. &amp;lt;b&amp;gt;-------&amp;amp;#61664;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Why r u putting an EXIT here ?&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;ENDSELCT &amp;lt;b&amp;gt;-------&amp;amp;#61664;&amp;gt;&amp;gt;NOT NEED TO USE IT &amp;#150; ALWAYS AVIOD SELECT-ENDSELECT&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;READ table it_a118 into wa_a118 Index 1.&lt;/P&gt;&lt;P&gt;gv_KNUMH = wa_A118-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM A904 into table it_a904&lt;/P&gt;&lt;P&gt;WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;     AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;     AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;READ table it_a904 into wa_a904 Index 1.&lt;/P&gt;&lt;P&gt;gv_KNUMH = wa_A904-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;SELECT * FROM A914 into table it_1914 &lt;/P&gt;&lt;P&gt;WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;     AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;     AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;READ table it_a914 into wa_a914 Index 1.&lt;/P&gt;&lt;P&gt;gv_KNUMH = wa_A914-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM A005 INTO TABLE IT_A005 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_A005 COMPARING MATNR.&lt;/P&gt;&lt;P&gt;READ table it_a105 into wa_a105 Index 1.&lt;/P&gt;&lt;P&gt;gv_KNUMH = wa_A105-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM A006 INTO TABLE IT_A006 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;SORT IT_A006 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_A006 COMPARING MATNR.&lt;/P&gt;&lt;P&gt;READ table it_a106 into wa_a106 Index 1.&lt;/P&gt;&lt;P&gt;gv_KNUMH = wa_A106-KNUMH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;SELECT * FROM A004 INTO TABLE IT_A004 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;AND MATNR = IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;SORT IT_A004 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_A004 COMPARING MATNR&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;READ table it_a004 into wa_a04 Index 1.&lt;/P&gt;&lt;P&gt;gv_KNUMH = wa_A104-KNUMH.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF FOUND = 1.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM KONP WHERE KNUMH = gv_KNUMH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;SELECT * FROM CDHDR into wa_cdhdr &lt;/P&gt;&lt;P&gt;WHERE OBJECTCLAS = 'COND_A' &lt;/P&gt;&lt;P&gt;      AND OBJECTID = KNUMH &lt;/P&gt;&lt;P&gt;ORDER BY UDATE UTIME DESCENDING.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;IT_ZCOSTHIST-CDATE = CDHDR-UDATE.&lt;/P&gt;&lt;P&gt;IT_ZCOSTHIST-CTIME = CDHDR-UTIME.&lt;/P&gt;&lt;P&gt;IT_ZCOSTHIST-CUSER = CDHDR-USERNAME.&lt;/P&gt;&lt;P&gt;MODIFY IT_ZCOSTHIST INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF ( IT_ZCOSTHIST-LIST_PRICE &amp;lt;&amp;gt; KONP-KBETR ) .&lt;/P&gt;&lt;P&gt;IT_ZCOSTHISTM-ACTUALPRICE = KONP-KBETR.&lt;/P&gt;&lt;P&gt;APPEND IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;modify zcosthist to set cdate,ctime and cuser&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MODIFY ZCOSTHIST FROM TABLE IT_ZCOSTHIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please declare itabs and was for each and every dbtable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;like IT_ZCOSTHIST type ZCOSTHIST for work area &lt;/P&gt;&lt;P&gt;and wa_ZCOSTHIST type standard table of ZCOSTHIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this will help,&lt;/P&gt;&lt;P&gt;Thanks 'n Regards,&lt;/P&gt;&lt;P&gt;Ashwani&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Feb 2007 23:20:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939270#M388057</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-27T23:20:14Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939271#M388058</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ashwani,&lt;/P&gt;&lt;P&gt;      As per your suggestions, i could improve the performance a little bit .. How to use the constants &lt;/P&gt;&lt;P&gt;FOUND = 0. (You shoud declare a constant like &amp;#145;c_zero&amp;#146; for any constants used)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code after all the modifications.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM ZCOSTHIST INTO TABLE IT_ZCOSTHIST WHERE MATNR IN S-MATNR&lt;/P&gt;&lt;P&gt;                                                  AND BUKRS IN S-BUKRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;take the most recent record for a material in zcosthist&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SORT IT_ZCOSTHIST BY MATNR BUKRS ASCENDING DATERUN DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_ZCOSTHIST COMPARING MATNR BUKRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_ZCOSTHIST .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Compare zcosthist prices for PBTS,PSDI and PCSC with the prices&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in VK13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check for the condition record in the access tables A118,A005,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A903,A904,A006,A004,A914 and A029 and take the price from KONP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;based on the condition record number, compare the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;prices if the prices are not equal move the record to it_zcosthistm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for displaying or updating the records&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set cdate,ctime and cuser in zcosthist for the latest record of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;each material by taking the latest record in cdhdr based on the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;condition number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FOUND = 0.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING IT_ZCOSTHIST TO IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;SELECT KNUMH DATAB FROM A118 INTO TABLE IT_A118 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                            AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                          AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;                                              ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    READ TABLE IT_A118 INTO WA_A118 INDEX 1.&lt;/P&gt;&lt;P&gt;    FOUND = 1.&lt;/P&gt;&lt;P&gt;    KNUMH = WA_A118-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   SELECT KNUMH DATAB FROM A904 INTO TABLE IT_A904  WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                                     AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                         AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;                                              ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;   IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;     READ TABLE IT_A904 INTO WA_A904 INDEX 1.&lt;/P&gt;&lt;P&gt;     FOUND = 1.&lt;/P&gt;&lt;P&gt;     KNUMH = WA_A904-KNUMH.&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     SELECT KNUMH DATAB FROM A914 INTO TABLE IT_A914 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                                      AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                        AND MATNR = IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;                                             ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;     IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_A914 INTO WA_A914 INDEX 1.&lt;/P&gt;&lt;P&gt;        FOUND = 1.&lt;/P&gt;&lt;P&gt;        KNUMH = WA_A914-KNUMH.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       SELECT KNUMH DATAB FROM A005 INTO TABLE IT_A005 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                                      AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                         AND MATNR = IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;           IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;              FOUND = 1.&lt;/P&gt;&lt;P&gt;              SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;              READ TABLE IT_A005 INTO WA_A005 INDEX 1.&lt;/P&gt;&lt;P&gt;              KNUMH = WA_A005-KNUMH.&lt;/P&gt;&lt;P&gt;           ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;             SELECT KNUMH DATAB FROM A006 INTO TABLE IT_A006&lt;/P&gt;&lt;P&gt;                                               WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                                 AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                        AND MATNR = IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;             IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;               FOUND = 1.&lt;/P&gt;&lt;P&gt;               SORT IT_A006 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;               READ TABLE IT_A006 INTO WA_A006 INDEX 1.&lt;/P&gt;&lt;P&gt;               KNUMH = WA_A006-KNUMH.&lt;/P&gt;&lt;P&gt;             ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;               SELECT KNUMH DATAB FROM A004 INTO TABLE IT_A004&lt;/P&gt;&lt;P&gt;                                                 WHERE KAPPL = 'V'&lt;/P&gt;&lt;P&gt;                                                   AND KSCHL = 'PR00'&lt;/P&gt;&lt;P&gt;                                       AND MATNR = IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;               IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                  FOUND = 1.&lt;/P&gt;&lt;P&gt;                  SORT IT_A004 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;                  READ TABLE IT_A004 INTO WA_A004 INDEX 1.&lt;/P&gt;&lt;P&gt;                  KNUMH = WA_A004-KNUMH.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;           ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF FOUND = 1.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM KONP WHERE KNUMH = KNUMH.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;     SELECT USERNAME UDATE UTIME FROM CDHDR INTO TABLE IT_CDHDR&lt;/P&gt;&lt;P&gt;                                          WHERE OBJECTCLAS = 'COND_A'&lt;/P&gt;&lt;P&gt;                                            AND OBJECTID = KNUMH&lt;/P&gt;&lt;P&gt;                                     ORDER BY UDATE UTIME DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;             READ TABLE IT_CDHDR INTO WA_CDHDR INDEX 1.&lt;/P&gt;&lt;P&gt;             IT_ZCOSTHIST-CDATE = WA_CDHDR-UDATE.&lt;/P&gt;&lt;P&gt;             IT_ZCOSTHIST-CTIME = WA_CDHDR-UTIME.&lt;/P&gt;&lt;P&gt;             IT_ZCOSTHIST-CUSER = WA_CDHDR-USERNAME.&lt;/P&gt;&lt;P&gt;             MODIFY IT_ZCOSTHIST INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF ( IT_ZCOSTHIST-LIST_PRICE &amp;lt;&amp;gt; KONP-KBETR ) .&lt;/P&gt;&lt;P&gt;           IT_ZCOSTHISTM-ACTUALPRICE = KONP-KBETR.&lt;/P&gt;&lt;P&gt;           APPEND IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Feb 2007 00:16:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939271#M388058</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-28T00:16:09Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939272#M388059</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;*Declare constants @ the top as follows.&lt;/P&gt;&lt;P&gt;CONSTANTS:  c_zero type INT01 value 0,&lt;/P&gt;&lt;P&gt;		C_one type INT01 value 1,&lt;/P&gt;&lt;P&gt;		C_v     type char01 value 'V',&lt;/P&gt;&lt;P&gt;		C_PR00 type char04 value 'PR00'.&lt;/P&gt;&lt;P&gt;And use them in ur code.&lt;/P&gt;&lt;P&gt;Please, check out for the data elements defined which matches ur requirements.&lt;/P&gt;&lt;P&gt;Also, USE 'EQ' instead of '=' wherever u are using '='. The places where 'EQ' doesn't work are READ and value assignment like a = b. so apart from these two areas, you should use 'EQ' it creates indexing. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IS UR REPORT WORKING AS EXPECTED? I MEAN u r finally concern about the output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM ZCOSTHIST INTO TABLE IT_ZCOSTHIST WHERE MATNR IN S-MATNR&lt;/P&gt;&lt;P&gt;AND BUKRS IN S-BUKRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;take the most recent record for a material in zcosthist&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SORT IT_ZCOSTHIST BY MATNR BUKRS ASCENDING DATERUN DESCENDING.&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM IT_ZCOSTHIST COMPARING MATNR BUKRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_ZCOSTHIST .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Compare zcosthist prices for PBTS,PSDI and PCSC with the prices&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in VK13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check for the condition record in the access tables A118,A005,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A903,A904,A006,A004,A914 and A029 and take the price from KONP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;based on the condition record number, compare the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;prices if the prices are not equal move the record to it_zcosthistm&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for displaying or updating the records&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set cdate,ctime and cuser in zcosthist for the latest record of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;each material by taking the latest record in cdhdr based on the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;condition number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FOUND = c_zero.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING IT_ZCOSTHIST TO IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;SELECT KNUMH DATAB FROM A118 INTO TABLE IT_A118 WHERE KAPPL EQ c_V&lt;/P&gt;&lt;P&gt;(YOU CAN DECLARE A CONSTANT FOR THIS VALUE - DECLARE A variable for each constant u used)&lt;/P&gt;&lt;P&gt;AND KSCHL EQ c_PR00 &lt;/P&gt;&lt;P&gt;AND MATNR EQ IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ z_zero.&lt;/P&gt;&lt;P&gt;READ TABLE IT_A118 INTO WA_A118 INDEX 1.&lt;/P&gt;&lt;P&gt;FOUND = c_one.&lt;/P&gt;&lt;P&gt;KNUMH = WA_A118-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT KNUMH DATAB FROM A904 INTO TABLE IT_A904 WHERE KAPPL EQ V&lt;/P&gt;&lt;P&gt;AND KSCHL EQ c_PR00&lt;/P&gt;&lt;P&gt;AND MATNR EQ IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ c_zero.&lt;/P&gt;&lt;P&gt;READ TABLE IT_A904 INTO WA_A904 INDEX 1.&lt;/P&gt;&lt;P&gt;FOUND = c_one.&lt;/P&gt;&lt;P&gt;KNUMH = WA_A904-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT KNUMH DATAB FROM A914 INTO TABLE IT_A914 WHERE KAPPL EQ c_V'&lt;/P&gt;&lt;P&gt;AND KSCHL EQ c_PR00&lt;/P&gt;&lt;P&gt;AND MATNR EQ IT_ZCOSTHIST-MATNR&lt;/P&gt;&lt;P&gt;ORDER BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;READ TABLE IT_A914 INTO WA_A914 INDEX 1.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;KNUMH = WA_A914-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT KNUMH DATAB FROM A005 INTO TABLE IT_A005 WHERE KAPPL EQ c_V&lt;/P&gt;&lt;P&gt;AND KSCHL EQ cPR00&lt;/P&gt;&lt;P&gt;AND MATNR EQ IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;SORT IT_A005 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;READ TABLE IT_A005 INTO WA_A005 INDEX 1.&lt;/P&gt;&lt;P&gt;KNUMH = WA_A005-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT KNUMH DATAB FROM A006 INTO TABLE IT_A006&lt;/P&gt;&lt;P&gt;WHERE KAPPL EQ c_v&lt;/P&gt;&lt;P&gt;AND KSCHL EQ c_PR00&lt;/P&gt;&lt;P&gt;AND MATNR EQ IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;FOUND = 1.&lt;/P&gt;&lt;P&gt;SORT IT_A006 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;READ TABLE IT_A006 INTO WA_A006 INDEX 1.&lt;/P&gt;&lt;P&gt;KNUMH = WA_A006-KNUMH.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT KNUMH DATAB FROM A004 INTO TABLE IT_A004&lt;/P&gt;&lt;P&gt;WHERE KAPPL = 'c_v&lt;/P&gt;&lt;P&gt;AND KSCHL EQ c_pr00&lt;/P&gt;&lt;P&gt;AND MATNR EQ IT_ZCOSTHIST-MATNR.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ c_zero.&lt;/P&gt;&lt;P&gt;FOUND = c_one.&lt;/P&gt;&lt;P&gt;SORT IT_A004 BY DATAB DESCENDING.&lt;/P&gt;&lt;P&gt;READ TABLE IT_A004 INTO WA_A004 INDEX 1.&lt;/P&gt;&lt;P&gt;KNUMH = WA_A004-KNUMH.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF FOUND = c_one.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM KONP WHERE KNUMH EQ KNUMH.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;SELECT USERNAME UDATE UTIME FROM CDHDR INTO TABLE IT_CDHDR&lt;/P&gt;&lt;P&gt;WHERE OBJECTCLAS EQ 'COND_A'&lt;/P&gt;&lt;P&gt;AND OBJECTID EQ KNUMH&lt;/P&gt;&lt;P&gt;ORDER BY UDATE UTIME DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;READ TABLE IT_CDHDR INTO WA_CDHDR INDEX 1.&lt;/P&gt;&lt;P&gt;IT_ZCOSTHIST-CDATE = WA_CDHDR-UDATE.&lt;/P&gt;&lt;P&gt;IT_ZCOSTHIST-CTIME = WA_CDHDR-UTIME.&lt;/P&gt;&lt;P&gt;IT_ZCOSTHIST-CUSER = WA_CDHDR-USERNAME.&lt;/P&gt;&lt;P&gt;MODIFY IT_ZCOSTHIST INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF ( IT_ZCOSTHIST-LIST_PRICE NE KONP-KBETR ) .&lt;/P&gt;&lt;P&gt;wa_ZCOSTHISTM-ACTUALPRICE = KONP-KBETR.&lt;/P&gt;&lt;P&gt;APPEND wa_zcosthistm to IT_ZCOSTHISTM.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Feb 2007 00:36:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939272#M388059</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-28T00:36:39Z</dc:date>
    </item>
    <item>
      <title>Re: report performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939273#M388060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot. Thanks everyone for your valuable answers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Feb 2007 00:49:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-performance/m-p/1939273#M388060</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-28T00:49:34Z</dc:date>
    </item>
  </channel>
</rss>

