Change date on select statement

Hi all,
I've field CLOSEDATA datatype DATA format 'dd/mm/yyyy hh:mm'
I extract CLOSEDATA with this query
SELECT CLOSEDATA
FROM JAVADEV
WHERE CLOSEMONTH='2010'but don't want the extracted time hh:mm of CLOSEDATA... I want to change it into 02:00
So the output of my query will be 'dd//mm/yyyy 02:00'
How do I change the previous query??
Thanks in advance

trebbia wrote:
Hi all,
I've field CLOSEDATA datatype DATA format 'dd/mm/yyyy hh:mm'Do you mean "datatype DAT<b>E</b>? DATEs don't have format like that, only strings that represent dates do.
Do you mean "datatype VARCHAR2"? Then just ignore the last 5 characters, and substitute whatever you want instead:
SELECT  SUBSTR (CLOSEDATA, 1, 11) || '02:00'     AS clesedata
FROM    JAVADEV
WHERE   CLOSEMONTH = '2010' 
If closedata were a DATE, then
{code}
TRUNC (closedata) + (2 / 24)
{code}
would be 02:00 on the same day, regardless of what the original hours and minutes were.
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only), and also post the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say which version of Oracle you're using.

Similar Messages

  • Collumn order changes when i retrive data through select statement.

    Hi
    i am using the sql developer 2.1.1.64 i have below table with respected collum sequence.
    tbl_message( id,
    date,
    process_name,
    stage,
    message,
    message_type,
    parameter)
    when i retrive this table using select * from tbl_message; i got the below collumn sequence
    date process_name stage id message message_type parameter
    13-may-2011 procedure 10 1 info info null
    but when i create the table my id collumn is the first collumn?
    and when open the table through sql developer id collumn is in the first place. so why id collumn is in 3rd place when i use select statement?
    if you need more information lpease let me know.
    Thanks
    Ritesh

    SQL Developer allows you to change the order of the columns in the Output window, and it will remember it. This is probably why you see the columns in a different order when you execute "SELECT * FROM ..."
    The actual order of the columns in the database is what you see when you execute the DESC command.
    You also can verify the order of the columns in two other ways:
    1) Use SQL*PLus and exeute your "SELECT * " query. SQL*Plus will not re-arrange the columns.
    2) Query the data dictionary. Use user_tab_columns (if you are the owner of the table), or use all_tab_columns and add the schema owner to the query otherwise.
    SELECT table_name, column_name, column_id
    FROM user_tab_columns
    WHERE table_name  = 'TBL_MESSAGE';

  • Change the default select statement in the execute_query function

    I want to list all records where c1 like '%ABD%'. So I set the following in the 'when_button_pressed' tigger:
    set_block_property ('block_name',DEFAULT_WHERE,'upper(c1) like '''||'%'||:block_name.blk_col_name||'%'||'''');
    execute_query;
    When I click on the button the :system.last_query holds the following select statement:
    select c1, c2, .. cn from t_n where upper(c1) like '%ABD%' and (upper(c1) = 'ABD' and (c1 like 'ab%' or c1 like 'aB%' or c1 like 'Ab%' or c1 like 'AB%')) order by c1
    Since the condition upper(c1) = 'ABD' is not satisfied oracle does not return any rows.
    My question is how to overcome this or is it possible to change the built-in select statement of execute_query.

    Have you tried this :
    'upper(c1) like upper('''||'%'||:block_name.blk_col_name||'%'||''''));

  • How to fetch negative sign data using select statement

    hi gurus,,
                  i hv  to fetch data which is negative in nature  using select statement i m using ppdit table and wrbtr field.(it contains both negative and positive data)....wat sud i add with select statement...plz help me..
    thnx in advance
    Message was edited by:

    HI,
               I think you can use LT or < 0.0 in the WHERE clause to get all the -ve values. Once you get them treat them as negative.
    Regards,
    Sesh

  • Can i get an exact part of data from select statement

    hi...good afternoon...
    i want to fetch the records from a table by select statement. but i dont want to fetch the as it is record. i want to fetch a particular part of eacg record in that column.
    for example..
    table_name=tab1
    column_name=col1
    the col1 contains datas like *'customer search-cs', 'get customer-gc', 'customer delete-cd'* etc etc..
    now while writing the select query, i want to get the descriptive output as get customer, customer search, customer delete....that is i dont want the symbols..
    is it possible to get this???
    plss suggest...

    You mean like these possible ways of doing it...
    SQL> ed
    Wrote file afiedt.buf
      1* select substr('customer search-cs',1,length('customer search-cs')-3) from dual
    SQL> /
    SUBSTR('CUSTOME
    customer search
    SQL> ed
    Wrote file afiedt.buf
      1* select regexp_substr('customer search-cs','^[^-]*') from dual
    SQL> /
    REGEXP_SUBSTR('
    customer search
    SQL>

  • Need help in logic change to avoid select statement inside loop .

    Hello all ,
    Please see the below code . Here i got the shipment number in internal table  IT_VTTK . So For this shipment number i want to get the details from Vekp table in to internal table  IT_VEKP  . There is no need for me to use For all entries . I have passed the value of it_vekp into work area wa_vekp and getting the details in to IT_vekp using loop.
    But since we should not use the select statement inside the loop , Can anybody please tell me how to achieve this functionality .
    Instead of passing into work area wa_vttk if i directly use the internal table I'm getting the following error .
    "IT_VTTK" is a table without a header line and therefore has no component called "TKNUM".
    Hence i have used select statement inside a loop . Please tell me is there any other way to avoid this ?
    types:begin of ty_likp,
            vbeln type likp-vbeln,
           end of ty_likp,
           begin of ty_vttk,
            tknum type vttk-tknum,
            end of ty_vttk.
    DATA: IT_VEKP TYPE STANDARD TABLE OF TY_VEKP,
          WA_VEKP TYPE TY_VEKP.
      data:it_likp type standard table of ty_likp,
           wa_likp type ty_likp,
           it_likp1 type standard table of ty_likp,
           it_vttk type standard table of ty_vttk,
           wa_vttk type ty_vttk.
      data:w_tknum type vttk-tknum.
    if not it_likp is initial .
        select vbeln
                from
                 vbfa
          into table it_vttk
           for all entries in it_likp where vbelv = it_likp-vbeln and vbtyp_n = '8'.
      endif .
    IF IT_VTTK[] IS NOT INiTIAL.
        loop at it_vttk into wa_vttk.
        SELECT venum
               EXIDV
               EXIDV2
               BRGEW
               NTGEW
               GEWEI
               TARAG
               GEWEI
               VHART
               INHALT
             FROM VEKP INTO TABLE IT_VEKP where VPOBJKEY = wa_vttk-tknum  and vpobj = '4'.
          endloop.
          endif.

    Hello,
    Why would you not like to use FOR ALL ENTRIES in the second select? Is it becasue of the length or type mismatch error between the fields VPOBJKEY and wa_vttk-tknum ?
    Vikranth

  • Count vs sum(case) on dates in select statement

    I'm writing a statement to count the number of events occuring within 7 days of creating and also within 31 days of creating. I tried count but the script never completd. I've written this below - does anyone have a better idea on how to access the data? Thanks -
    select /*+ INDEX(CW_DOCUMENTS_IDX1) */ b.create_dt,
    sum(case when b.create_dt <= a.event_dt - 7 then 1 else 0 end),
    sum(case when b.create_dt <= a.event_dt - 31 then 1 else 0 end)
    from cw4_audit_index a, cw_documents b
    where a.docseq = b.docseq
    and a.medrecno = b.medrecno
    and a.account = b.account
    group by b.create_dt
    /

    Dianna,
    Just in case you’re still checking the thread … another explanation for the “never completed” symptom.
    Assuming a “cw_documents” row is created on “create_dt” and subsequently related “cw4_audit_index” event rows are created with a “event_dt” timestamp … then <quote>count[ing] the number of events occurring within 7 days of creating and also within 31 days of creating</quote> would be something like:
    case when cw4_audit_index.event_dt <= cw_documents.create_dt +  7 then 1 else 0 end
    case when cw4_audit_index.event_dt <= cw_documents.create_dt + 31 then 1 else 0 endor to use your own query:
    select /*+ INDEX(CW_DOCUMENTS_IDX1) */
           b.create_dt
          ,sum(case when a.event_dt <= b.create_dt +  7 then 1 else 0 end)
          ,sum(case when a.event_dt <= b.create_dt + 31 then 1 else 0 end)
    from   cw4_audit_index  a
          ,cw_documents     b
    where  a.docseq   = b.docseq
    and    a.medrecno = b.medrecno
    and    a.account  = b.account
    group by b.create_dt
    /With your version of the sql … didn’t you find cases of rows in your result set having more “within 7 days” events than “within 31 days”? … should’ve been a red flag right there.
    In my skimpy desktop, on a table with ~24K documents and ~1.44M events (some 60 events for each document, half of them within 31 days) I got the query in around 10 seconds … tables analyzed and no indexes in site … you’re probably fine here with nice/fat full table scans.
    Since an “within 7 days” event also/always qualifies as an “within 31 days” one … one could improve the above query by specifying an extra predicate:
    select b.create_dt
          ,sum(case when a.event_dt <= b.create_dt +  7 then 1 else 0 end)
          ,sum(case when a.event_dt <= b.create_dt + 31 then 1 else 0 end)
    from   cw4_audit_index  a
          ,cw_documents     b
    where  a.docseq   = b.docseq
    and    a.medrecno = b.medrecno
    and    a.account  = b.account
    and    a.event_dt <= b.create_dt + 31  --<< extra predicate
    group by b.create_dt
    /at which moment the second “sum” in the select list can be replaced with “count(*)” … the improvement percentage is based on your event distribution (how many events get filtered out up-front) … in my case, 10-25%.
    Cheers.

  • CREATE OR REPLACE PROCEDURE return data like SELECT statement

    "SELECT * FROM SEARCH_KEYWORD" is successfully done and return the data of the tables. Now, I want to run that on server side using PROCEDURE.
    I successfully executed the below scripts. Please teach me how to call the sp_test procedure. OR if you have other way or maybe my scripts are wrong.
    CREATE OR REPLACE PACKAGE GLOBALPKG
    AS
         TYPE RCT1 IS REF CURSOR;
         TRANCOUNT INTEGER := 0;
         IDENTITY INTEGER;
    END;
    CREATE OR REPLACE PROCEDURE LPG.sp_test
         RCT1 IN OUT      GLOBALPKG.RCT1
    AS
    BEGIN
         OPEN RCT1 FOR
         SELECT *
         FROM SEARCH_KEYWORD;
    END;
    Here is my table definition:
    CREATE TABLE LPG.SEARCH_KEYWORD
    FRACTION VARCHAR2(50),
    KEYWORD VARCHAR2(50),
    PURPOSE VARCHAR2(50),
    REMARKS VARCHAR2(50),
    DATE_INSERTED DATE DEFAULT sysdate
    PCTFREE 10
    PCTUSED 40
    MAXTRANS 255
    TABLESPACE SYSTEM
    STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    NOCACHE
    LOGGING
    Eros
    Japan

    Wrong forum. You should ask this question in the SQL and PL/SQL forum.
    Couple of comments though. Oracle is not SQL-Server. So calling a procedure that returns a ref cursor is different from a T-SQL macro procedure that functions like a view.
    Also, there is no need to use the SQL-Server standard (and silly one at that) of prefixing stored procedures using the text "sp_". In fact, the whole concept of Hungarian-like notation is something of the past and has no place in today's paradigm of software engineering.
    As for calling a a proc that returns a ref cursor, from SQL*Plus it will look as follows:
    SQL> var c refcursor
    SQL>
    SQL> exec LPG.sp_test( :c )
    SQL> print c
    Ref cursor needs to be supported by the client language you use to make this call to Oracle.

  • Issue with Past Month data in the Select Statement

    Hi,
    I written the following query,
    SELECT   /*+NO_MERGE(A)*/
                CASE
                   WHEN snap_shot_date > a.q3
                   AND snap_shot_date <= a.q4
                      THEN q4char
                   WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
                      THEN q3char
                   WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
                      THEN q2char
                   WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
                      THEN q1char              
                END snap_shot_date,
                CASE
                   WHEN snap_shot_date > a.q3 AND snap_shot_date <= a.q4
                      THEN 1
                   WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
                      THEN 2
                   WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
                      THEN 3
                   WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
                      THEN 4
                END sort_by,
                pillar3_exposure_class_code, pd_band_description,
                ROUND (SUM (p3.ead_post_sec_post_crm)),
                ROUND (SUM (notional_principle)),
                DECODE (SUM (notional_principle),
                        0, 0,
                        ROUND (  SUM (DECODE (exposure_type,
                                              'UNDRAW', ead_post_sec_post_crm,
                                              0
                               / SUM (notional_principle),
                               4
                DECODE (SUM (p3.ead_post_sec_post_crm),
                        0, 0,
                        ROUND (  SUM (pd_value * p3.ead_post_sec_post_crm)
                               / SUM (p3.ead_post_sec_post_crm),
                               2
                DECODE (SUM (p3.ead_post_sec_post_crm),
                        0, 0,
                        ROUND (SUM (rwa) / SUM (p3.ead_post_sec_post_crm), 4)
                DECODE (SUM (p3.ead_post_sec_post_crm),
                        0, 0,
                        ROUND (  SUM (lgd_rate * p3.ead_post_sec_post_crm)
                               / SUM (p3.ead_post_sec_post_crm),
                               2
                TO_CHAR (MAX (a.max_date), 'FMMonth DD, YYYY')
           FROM summary.pillar3 p3,
                (SELECT DISTINCT (month_end_date) max_date,
                                 LAST_DAY (month_end_date) q4,
                                 TO_CHAR (LAST_DAY (month_end_date),
                                          'MON YYYY'
                                         ) q4char,
                                 ADD_MONTHS (LAST_DAY (month_end_date), -3) q3,
                                 TO_CHAR
                                    (ADD_MONTHS (LAST_DAY (month_end_date), -3),
                                     'MON YYYY'
                                    ) q3char,
                                 ADD_MONTHS (LAST_DAY (month_end_date), -6) q2,
                                 TO_CHAR
                                    (ADD_MONTHS (LAST_DAY (month_end_date), -6),
                                     'MON YYYY'
                                    ) q2char,
                                 ADD_MONTHS (LAST_DAY (month_end_date), -9) q1,
                                 TO_CHAR
                                    (ADD_MONTHS (LAST_DAY (month_end_date), -9),
                                     'MON YYYY'
                                    ) q1char,
                                 ADD_MONTHS (LAST_DAY (month_end_date), -12) q0
                            FROM rcdwstg.stg_bcar_detail) a
          WHERE snap_shot_date BETWEEN ADD_MONTHS (a.max_date, -12) AND a.max_date
       GROUP BY CASE
                   WHEN snap_shot_date > a.q3 AND snap_shot_date <= a.q4
                      THEN q4char
                   WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
                      THEN q3char
                   WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
                      THEN q2char
                   WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
                      THEN q1char
                END,
                CASE
                   WHEN snap_shot_date > a.q3 AND snap_shot_date <= a.q4
                      THEN 1
                   WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
                      THEN 2
                   WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
                      THEN 3
                   WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
                      THEN 4
                END,
                pillar3_exposure_class_code,
                pd_band_description
       ORDER BY 2 DESC;I have written the query to get the latest 12 months data from a table and split that into 4 quarter to show in the Cognos Report. But when the table having 13th or the past months data, the select statement is showing Empty values in the first two columns and fetching the 13 month data too.
    Can anyone help me in this to avoid the problem.
    Thanks
    Radha K

    WHERE snap_shot_date BETWEEN ADD_MONTHS(TRUNC(a.max_date, 'MM'), -11) AND  a.max_date
    ....

  • Regarding Logical database and  select statement..

    Hi
    Experts.
    i would  like to  know the  diff b/w logical data base & select statement  while using report.
    wt is the use of logical databases in R/3. is there   any   advantage  used in the  reports.
    Thanks & Regards..
    Spandana.

    Dear Spandana,
      Go through the below description of LDB. I hope you wil get a fair amount of idea.
    SAP comes loaded with all the extras. Among the extras that are most helpful to IT managers are all the access routines needed to pull any business object that managers can think of out of SAP databases. However, SAP has not thought of everything where your particular applications are concerned. SAP organizes its standard database tables to service business units based on conventional business applications. Itu2019s likely your business requires something new, perhaps even something exotic. In that case, you will need to create a new database, using information from different places. Basically, you need a logical database. You need to create a virtual business data object repository consisting of a new kind of record or table that suits your purposes. In addition, the repository should be composed of information that is actually stored in a number of different locations, none of them necessarily logically associated with one another. Letu2019s take a closer look at creating logical databases.
    A case for a logical database
    Suppose my company manufactures widgets of the most obscure variety, and they are components of other widgets. I sell my widgets as raw material for the more sophisticated widgets built by others, but in some cases I actually partner with other manufacturers in creating yet another class of widget. Now, in my world, I consequently have customers who are also partners. I sell to them and I partner with them in manufacturing and distribution. Also, I need an application that uses both of these dual-use relationships.
    Essentially, I have a customer database and a partner database. Neither contains records that are structured to contain the identifying particulars of the other. Thus, I need a hybrid database that gives me tables detailing these hybrid relationships. What can I do? I can go the long way around and write a new database, pulling information from both and creating new objects with a customized program that I write by hand. However, this process is cumbersome and contains maintenance issues. On the other hand, I can use SAPu2019s logical database facility, create my logical database in a couple of minutes, and have no maintenance issues at all.
    Logical database structures
    There are three defining entities in an SAP logical database. You must be clear on all three in order to create and use one.
    u2022     Table structure: Your logical database includes data from specified tables in SAP. There is a hierarchy among these tables defined by their foreign keys (all known to SAP), and you are going to define a customized relationship between select tables. This structure is unique and must be defined and saved.
    u2022     Data selection: You may not want or need every item in the referenced tables that contributes to your customized database. There is a selection screen that permits you to pick and choose.
    u2022     Database access programming: Once youu2019ve defined your logical database, SAP will generate the access subroutines needed to pull the data in the way you want it pulled.
    Creating your own logical database
    ABAP/4 (Advanced Business Application Programming language, version 4) is the language created by SAP for implementation and customization of its R/3 system. ABAP/4 comes loaded with many predefined logical databases that can construct and table just about any conventional business objects you might need in any canned SAP application. However, you can also create your own logical databases to construct any custom objects you care to define, as your application requires in ABAP/4. Hereu2019s a step-by-step guide:
    1.     Call up transaction SLDB (or transaction SE36). The path you want is Tools | ABAP Workbench | Development | Programming Environment | Logical Databases. This screen is called Logical Database Builder.
    2.     Enter an appropriate name in the logical database name field. You have three options on this screen: Create, Display, and Change. Choose Create.
    3.     Youu2019ll be prompted for a short text description of your new logical database. Enter one. Youu2019ll then be prompted to specify a development class.
    4.     Now comes the fun part! You must specify a root node, or a parent table, as the basis of your logical database structure. You can now place subsequent tables under the root table as needed to assemble the data object you want. You can access this tree from this point forward, to add additional tables, by selecting that root node and following the path Edit | Node | Create. Once youu2019ve saved the structure you define in this step, the system will generate the programming necessary to access your logical database. The best part is you donu2019t have to write a single line of code.
    Watch out!
    The use of very large tables will degrade the performance of a logical database, so be aware of that trade-off. Remember that some tables in SAP are very complex, so they will be problematic in any user-defined logical database.
    Declaring a logical database
    Hereu2019s another surprising feature of logical databases: You do not assign them in your ABAP/4 Code. Instead, the system requires that you specify logical databases as attributes. So when you are creating a report, have your logical database identifier (the name you gave it) on hand when you are defining its attributes on the Program Attributes screen. The Attributes section of the screen (the lower half) will include a Logical database field, where you can declare your logical database.
    Logical databases for increasing efficiency
    Why else would you want to create a logical database? Consider that the logical databases already available to you begin with a root node and proceed downward from there. If the data object you wish to construct consists of items that are all below the root node, you can use an existing logical database program to extract the data, then trim away what you donu2019t want using SELECT statementsu2014or you can increase the speed of the logical database program considerably by redefining the logical database for your object and starting with a table down in the chain. Either way, youu2019ll eliminate a great deal of overhead.
    Regards
    Arindam

  • Short dump during select statement

    hi,
    i have to display 1 alv list output using REUSE_ALV_HIERSEQ_LIST_DISPLAY function module...so i have populated the data using select statement
    select EXIDV
        brgew meabm
               vegr1 erlkz vhilm erdat aenam
               ernam from vekp
                    into corresponding fields of table  gt_master
                    up to gs_test-select_amount rows.
    so the data is also getting populated to gt_master table before the function module...but after executing the function module..it is giving short dump...due to some standard program....any idea

    hi,
    my coding is
    Report       : ZBCALV                                                 *
    Author       :                                                       *
    SAP-User     :                                                       *
    Requester    :                                                       *
    Date         :                                                       *
    Specification:                                                       *
    Description  :                                                       *
    Changes      :                                                       *
    Change No    :                                                       *
    Author       :                                                       *
    SAP-User     :                                                       *
    Date         :                                                       *
    Reason / Desc:                                                       *
    REPORT   ZBCALV.
    **& Report  BCALV_TEST_HIERSEQ_LIST_EVENTS                              *
    *report  bcalv_test_hierseq_list_events.
    types: g_ty_t_exidv  type standard table of vekp,
           g_ty_t_brgew  type standard table of vekp,
           g_ty_t_vegr1  type standard table of vekp,
           g_ty_t_vekp    type standard table of vekp,
           g_ty_t_curr    type standard table of alv_cur,
          g_ty_s_vekp type alv_t_t2,
           g_ty_s_exidv  type alv_tab,
           g_ty_s_brgew   type alv_tab,
           g_ty_s_vegr1  type alv_chck,
           g_ty_s_vekp    type vekp,
           g_ty_s_curr    type alv_cur.
    constants:
    *con_vekp type lvc_fname value 'ALV_T_T2',
               con_scarr   type lvc_fname value 'ALV_TAB',      "#EC *
               con_spfli   type lvc_fname value 'ALV_CHCK',     "#EC *
               con_vekp    type lvc_fname value 'VEKP',
               con_scurx   type lvc_fname value 'ALV_CUR'.      "#EC *
    DATA                                                                 *
    tables: sscrfields.   " for processing the FCODEs in Selektion screens
    type-pools: slis, kkblo.
    class lcl_events_d1001 definition deferred.
    types: begin of g_ty_s_test,
             select_amount      type i,
             selected_recs_m    type i,
             selected_recs_s    type i,
             no_info_popup      type char1,
             info_popup_once    type char1,
             events             type lvc_fname occurs 0,
             events_exit        type slis_t_event_exit,
             events_info_popup  type lvc_fname occurs 0,
             list_append        type char1,
             list_amount        type i,
             list_append_status type i,
             layo_expand_field  type char1,
             layo_expand_all    type char1,
             vari_default       type char1,
             vari_save          type char1,
             bypassing_buffer   type char1,
             buffer_active      type char1,
           end   of g_ty_s_test,
           begin of g_ty_s_evt_exit.
    include type slis_event_exit.
    types:   text    type string,
           end   of g_ty_s_evt_exit,
           g_ty_t_evt_exit type standard table of g_ty_s_evt_exit.
    constants: con_true     type char1 value 'X',
               con_ok   type sy-ucomm value 'OK',
               con_exit type sy-ucomm value 'EXIT',
               con_canc type sy-ucomm value 'CANC',
               con_back type sy-ucomm value 'BACK',
               con_event_01 type lvc_fname value 'PF_STATUS_SET',
               con_event_02 type lvc_fname value 'USER_COMMAND',
               con_event_03 type lvc_fname value 'CALLER_EXIT',
               con_event_04 type lvc_fname value 'LIST_MODIFY',
               con_event_05 type lvc_fname value 'BEFORE_LINE_OUTPUT',
               con_event_06 type lvc_fname value 'AFTER_LINE_OUTPUT',
               con_event_07 type lvc_fname value 'SUBTOTAL_TEXT',
               con_event_08 type lvc_fname value 'REPREP_MODIFY',
               con_event_09 type lvc_fname value 'TOP_OF_PAGE',
               con_event_10 type lvc_fname value 'END_OF_PAGE',
               con_event_11 type lvc_fname value 'TOP_OF_LIST',
               con_event_12 type lvc_fname value 'END_OF_LIST',
               con_event_13 type lvc_fname value 'TOP_OF_COVERPAGE',
               con_event_14 type lvc_fname value 'END_OF_COVERPAGE',
               con_event_15 type lvc_fname value 'TOP_OF_FOREIGN_PAGE',
               con_event_16 type lvc_fname value 'END_OF_FOREIGN_PAGE',
               con_event_17 type lvc_fname value 'GROUPLEVEL_CHANGE',
               con_event_18 type lvc_fname value 'ITEM_DATA_EXPAND'.
    data: gs_test type g_ty_s_test.
    data: g_okcode type sy-ucomm.
    data: g_repid type sy-repid.
    data: gt_evt_exit type g_ty_t_evt_exit.
    data: gr_container_d1001   type ref to cl_gui_custom_container,
          gr_grid_d1001        type ref to cl_gui_alv_grid,
          gr_events_d1001      type ref to lcl_events_d1001.
    data: g_start_listinfo type slis_lineinfo.
    *addition for extra
    DATA: fieldcatalog  TYPE slis_t_fieldcat_alv with header line.
    types  : BEGIN OF gt_output ,
           EXIDV TYPE VEKP-EXIDV,
          VGBEL TYPE LIPS-VGBEL,
           BRGEW TYPE VEKP-BRGEW,
           VEGR1 TYPE VEKP-VEGR1,
           MEABM TYPE VEKP-MEABM,
           ERLKZ TYPE VEKP-ERLKZ,
          VSTAT TYPE NAST-VSTAT,
           VHILM TYPE VEKP-VHILM,
           ERDAT TYPE VEKP-ERDAT,
           AENAM TYPE VEKP-AENAM,
           VBELN TYPE VBELN_GEN,
           ERNAM TYPE VEKP-ERNAM,
            END OF gt_output.
    data: ls_output type gt_output,
          lt_output type gt_output occurs 0 WITH HEADER LINE .
    types  : BEGIN OF gt_item_output ,
           EXIDV TYPE VEKP-EXIDV,
           BRGEW TYPE VEKP-BRGEW,
            vEGR1 TYPE VEKP-VEGR1,
           TARAG TYPE VEKP-TARAG,
           NTGEW TYPE VEKP-NTGEW,
           MEABM TYPE VEKP-MEABM,
           BREIT TYPE VEKP-BREIT,
           HOEHE TYPE VEKP-HOEHE,
          ANW_STATUS TYPE VEKP-ANW_STATUS,
           MATNR TYPE VEPO-MATNR,
           VEGR2 TYPE VEKP-VEGR2,
           VSTEL TYPE VEKP-VSTEL,
           WERKS TYPE VEKP-WERKS,
           END OF gt_item_output.
    data: ls_ITEM_output type gt_ITEM_output,
           lt_ITEM_output type gt_ITEM_output occurs 0 with header line.
    types:       begin of g_ty_s_master.
    include type gt_output.
    types:   box                  type char1,
            lights               type char1,
             checkbox             type char1,
             expand               type char1,
             help                 type i,
             end   of g_ty_s_master,
           g_ty_t_master type standard table of g_ty_s_master,
           begin of g_ty_s_slave.
    include type gt_item_output.
    types:   box                  type char1,
            lights               type char1,
             checkbox             type char1,
             expand               type char1,
             help                 type i,
             end   of g_ty_s_slave,
           g_ty_t_slave type standard table of g_ty_s_slave.
    data: gt_master type g_ty_t_master with header line,
          gt_slave  type g_ty_t_slave with header line,
          gs_master type g_ty_s_master.
          CLASS lcl_events_d1001 DEFINITION
    class lcl_events_d1001 definition.
      public section.
        methods:
        data_changed         for event data_changed
                             of cl_gui_alv_grid
                             importing er_data_changed
                                       e_onf4
                                       e_onf4_before
                                       e_onf4_after,
        data_changed_finished
                             for event data_changed_finished
                             of cl_gui_alv_grid.
    endclass.                    "lcl_events_d1001 DEFINITION
          CLASS lcl_events_d1001 IMPLEMENTATION
    class lcl_events_d1001 implementation.
      method data_changed.
      endmethod.                    "data_changed
      method data_changed_finished.
      endmethod.                    "data_changed_finished
    endclass.                    "lcl_events_d1001 IMPLEMENTATION
    SELECTION-SCREEN                                                     *
    selection-screen begin of block gen with frame.
    parameters:
    p_amount type i default 30.
    selection-screen end of block gen.
    at selection-screen.
    AT SELECTION-SCREEN                                                  *
      case sscrfields-ucomm.
        when 'PB01'.
          call screen 1001 starting at 1 1 ending at 80 20.
      endcase.
    START-OF-SELECTION                                                   *
    start-of-selection.
      g_repid = sy-repid.
      gs_test-select_amount = p_amount.
    END-OF-SELECTION                                                     *
    end-of-selection.
      perform f01_call_list.
    *&      Form  f01_call_list
          text
    form f01_call_list.
      data: l_callback_program type sy-cprog,                   "#EC NEEDED
            ls_layo            type slis_layout_alv,
            lt_fcat            type slis_t_fieldcat_alv,
            ls_keyinfo         type slis_keyinfo_alv.
      data: ls_master type g_ty_s_master,
            ls_slave  type g_ty_s_slave.
      l_callback_program = sy-repid.
      perform f01_alv_get_outtab.
      perform f01_alv_set_layout changing ls_layo.
      perform f01_alv_set_fcat   changing lt_fcat.
      perform f01_alv_set_keyinfo changing ls_keyinfo.
      if gs_test-list_append_status ne 0.
        ls_layo-list_append = gs_test-list_append.
      endif.
      call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        exporting
          i_callback_program             = g_repid
          is_layout                      = ls_layo
          it_fieldcat                    = lt_fcat
          i_tabname_header               = 'GT_MASTER'
          i_tabname_item                 = 'GT_SLAVE'
          is_keyinfo                     = ls_keyinfo
        tables
          t_outtab_header                = gt_master
          t_outtab_item                  = gt_slave
        exceptions
          program_error                  = 1
          others                         = 2.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " f01_call_list
    FORM f01_alv_set_fcat
    form f01_alv_set_fcat changing ct_fcat type slis_t_fieldcat_alv.
      data: lt_fcat_master type slis_t_fieldcat_alv,
            lt_fcat_slave  type slis_t_fieldcat_alv.
      clear ct_fcat[].
      perform f01_alv_set_fcat_master changing lt_fcat_master.
      perform f01_alv_set_fcat_slave  changing lt_fcat_slave.
      append lines of lt_fcat_master to ct_fcat.
      append lines of lt_fcat_slave  to ct_fcat.
    endform.                               " F01_ALV_SET_FCAT
    *&      Form  f01_alv_set_fcat_master
          text
    form f01_alv_set_fcat_master changing ct_fcat type slis_t_fieldcat_alv.
      data: ls_fcat type slis_fieldcat_alv,
            l_char(3) type c.
    get fieldcatalog
      fieldcatalog-fieldname   = 'EXIDV'.           "Field name in itab
      fieldcatalog-seltext_l  = 'HU-NR'.  "Column text
      FIELDCATALOG-KEY         = 'X'.
      FIELDCATALOG-TECH        = 'X'.
      fieldcatalog-col_pos     = 1.  "Column position
       fieldcatalog-ref_tabname     = 'VEKP'.
      fieldcatalog-outputlen   = 05.                "Column width
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VGBEL'.
      fieldcatalog-seltext_L   = 'SALES ORDER'.
      fieldcatalog-outputlen   = 15.
       fieldcatalog-ref_tabname     = 'LIPS'.
      fieldcatalog-col_pos     = 2.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'BRGEW'.
      fieldcatalog-seltext_l   = 'WEIGHT'.
      FIELDCATALOG-KEY         = 'X'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 3.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MEABM'.
      fieldcatalog-seltext_l   = 'DIMENSION'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 4.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VEGR1'.
      fieldcatalog-seltext_l   = 'IPPC NR'.
      fieldcatalog-outputlen   = 15.
      FIELDCATALOG-KEY         = 'X'.
      fieldcatalog-col_pos     = 5.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'ERLKZ'.
      fieldcatalog-seltext_l   = 'STATUS'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 6.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VSTAT'.
      fieldcatalog-seltext_l   = 'PRINT STATUS'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 7.
       fieldcatalog-ref_tabname     = 'VSTAT'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VHILM'.
      fieldcatalog-seltext_l   = 'PACKING MATERIAL'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 8.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'ERDAT'.
      fieldcatalog-seltext_l   = 'CREATED FROM'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 9.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'AENAM'.
      fieldcatalog-seltext_l   = 'LAST CHANGE'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 10.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VBELN'.
      fieldcatalog-seltext_l   = 'DELIVERY'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 11.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'ERNAM'.
      fieldcatalog-seltext_l   = 'CREATED BY'.
      fieldcatalog-outputlen   = 12.
      fieldcatalog-col_pos     = 8.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      ls_fcat-tabname = 'GT_MASTER'.
      modify ct_fcat from ls_fcat transporting tabname
                     where tabname ne ls_fcat-tabname.
      loop at ct_fcat into ls_fcat.
        if    ls_fcat-fieldname eq 'BRGEW'.
          or ls_fcat-fieldname eq ''.
    *§1.Set status of columns PLANETYPE and SEATSOCC to editable.
          ls_fcat-edit = 'X'.
          modify ct_fcat from ls_fcat.
        endif.
      endloop.
    endform.                    " f01_alv_set_fcat_master
    *&      Form  f01_alv_set_fcat_slave
          text
    form f01_alv_set_fcat_slave changing ct_fcat type slis_t_fieldcat_alv.
      data: ls_fcat   type slis_fieldcat_alv,
            l_char(3) type c.
      fieldcatalog-fieldname   = 'EXIDV'.           "Field name in itab
      fieldcatalog-seltext_l  = 'HU-NR'.  "Column text
      FIELDCATALOG-KEY         = 'X'.
       FIELDCATALOG-TECH        = 'X'.
      fieldcatalog-col_pos     = 1.  "Column position
       fieldcatalog-ref_tabname     = 'VEKP'.
      fieldcatalog-outputlen   = 05.                "Column width
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
    fieldcatalog-fieldname   = 'TARAG'.           "Field name in itab
      fieldcatalog-seltext_l  = 'HU-NR'.  "Column text
      fieldcatalog-col_pos     = 1.  "Column position
       fieldcatalog-ref_tabname     = 'VEKP'.
      fieldcatalog-outputlen   = 05.                "Column width
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'NTGEW'.
      fieldcatalog-seltext_L   = 'WEIGHT HU'.
      fieldcatalog-outputlen   = 15.
       fieldcatalog-ref_tabname     = 'VEKP'.
      fieldcatalog-col_pos     = 2.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'BRGEW'.
      fieldcatalog-seltext_l   = 'WEIGHT'.
    FIELDCATALOG-KEY         = 'X'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 3.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'LAENG'.
      fieldcatalog-seltext_l   = 'LENGTH'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 4.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'BREIT'.
      fieldcatalog-seltext_l   = 'WIDTH'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 5.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'HOEHE'.
      fieldcatalog-seltext_l   = 'HEIGHT'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 6.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VEGR1'.
      fieldcatalog-seltext_l   = 'HU GR1'.
      FIELDCATALOG-KEY         = 'X'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 7.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VEGR2'.
      fieldcatalog-seltext_l   = 'HU GR2'.
      FIELDCATALOG-KEY         = 'X'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 8.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_l   = 'MAT NO'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 9.
       fieldcatalog-ref_tabname     = 'VEPO'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'VSTEL'.
      fieldcatalog-seltext_l   = 'SHIPPING'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 10.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'WERKS'.
      fieldcatalog-seltext_l   = 'PLANT'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-col_pos     = 11.
       fieldcatalog-ref_tabname     = 'VEKP'.
      APPEND fieldcatalog TO ct_fcat.
      CLEAR  fieldcatalog.
      ls_fcat-tabname = 'GT_SLAVE'.
      modify ct_fcat from ls_fcat transporting tabname
                     where tabname ne ls_fcat-tabname.
    endform.                    " f01_alv_set_fcat_slave
    FORM f01_alv_set_layout
    form f01_alv_set_layout changing cs_layout type slis_layout_alv.
    *... Display options
      cs_layout-colwidth_optimize      = con_true.
      cs_layout-no_colhead             = space.
      cs_layout-no_hotspot             = space.
      cs_layout-zebra                  = space.
      cs_layout-no_vline               = space.
      cs_layout-cell_merge             = space.
      cs_layout-no_min_linesize        = space.
      cs_layout-min_linesize           = space.
      cs_layout-max_linesize           = space.
      cs_layout-window_titlebar        = space.
      cs_layout-no_uline_hs            = space.
      cs_layout-no_sumchoice           = space.
      cs_layout-no_totalline           = space.
      cs_layout-totals_before_items    = space.
      cs_layout-totals_only            = space.
      cs_layout-totals_text            = space.
      cs_layout-no_subchoice           = space.
      cs_layout-no_subtotals           = space.
      cs_layout-subtotals_text         = space.
      cs_layout-numc_sum               = space.
      cs_layout-no_unit_splitting      = space.
    *... Interaction
      cs_layout-box_fieldname          = 'BOX'.
      cs_layout-box_tabname            = space.
      cs_layout-box_rollname           = space.
      if gs_test-layo_expand_field eq con_true.
        cs_layout-expand_fieldname       = 'EXPAND'.
      endif.
      cs_layout-hotspot_fieldname      = space.
      cs_layout-f2code                 = space.
      cs_layout-key_hotspot            = space.
      cs_layout-flexible_key           = space.
      cs_layout-reprep                 = space.
      cs_layout-group_buttons          = space.
      cs_layout-no_keyfix              = space.
      cs_layout-get_selinfos           = con_true.
      cs_layout-group_change_edit      = con_true.
      cs_layout-no_scrolling           = space.
      cs_layout-expand_all             = gs_test-layo_expand_all.
    *... Detailed screen
      cs_layout-detail_popup           = space.
      cs_layout-detail_initial_lines   = space.
      cs_layout-detail_titlebar        = space.
    *... PF-status
      cs_layout-def_status             = space.
    *... Display variants
      cs_layout-header_text            = space.
      cs_layout-item_text              = space.
      cs_layout-default_item           = space.
    *... colour
      cs_layout-info_fieldname         = space.
      cs_layout-coltab_fieldname       = space.
    *... others
      cs_layout-list_append            = space.
    endform.                               " F01_ALV_SET_LAYOUT
    *&      Form  f01_alv_set_keyinfo
          text
    form f01_alv_set_keyinfo changing cs_keyinfo type slis_keyinfo_alv.
      cs_keyinfo-header01 = 'EXIDV'.
      cs_keyinfo-item01   = 'EXIDV'.
      cs_keyinfo-header02 = 'BRGEW'."'CARRID'.
      cs_keyinfo-item02   = 'BRGEW'."."'CARRID'.
      cs_keyinfo-header03 = 'VEGR1'."'CONNID'.
      cs_keyinfo-item03   = 'VEGR1'."'CONNID'.
      cs_keyinfo-header04 = space.
      cs_keyinfo-item04   = 'VEGR2'."'FLDATE'.
      cs_keyinfo-header05 = space.
      cs_keyinfo-item05   = space.
    endform.                    " f01_alv_set_keyinfo
    FORM f01_alv_event_pf_status_set
    form f01_alv_event_pf_status_set using rt_extab type slis_t_extab.
                                                                "#EC *
      data: l_event type lvc_fname.                             "#EC NEEDED
      if gs_test-info_popup_once eq con_true.
        read table gs_test-events_info_popup into l_event
                   with key table_line = 'PF_STATUS_SET'.
        if sy-subrc ne 0.
          insert 'PF_STATUS_SET' into gs_test-events_info_popup index 1.
          message i000(0k) with text-t01.
        endif.
      elseif gs_test-no_info_popup eq space.
        message i000(0k) with text-t01.
      endif.
      set pf-status 'STANDARD' excluding rt_extab.
      set titlebar 'STANDARD'.
    endform.                               " F01_ALV_EVENT_PF_STATUS_SET
    *&      Form  F01_ALV_EVENT_BEFORE_LINE_OUTP
          text
    form f01_alv_event_before_line_outp
                          using rs_lineinfo type slis_lineinfo. "#EC *
      data: l_event type lvc_fname.                             "#EC NEEDED
      if gs_test-info_popup_once eq con_true.
        read table gs_test-events_info_popup into l_event
                   with key table_line = 'BEFORE_LINE_OUTPUT'.
        if sy-subrc ne 0.
          insert 'BEFORE_LINE_OUTPUT' into gs_test-events_info_popup
                                      index 1.
          message i000(0k) with text-t05.
        endif.
      elseif gs_test-no_info_popup eq space.
        message i000(0k) with text-t05.
      endif.
      format color off
             intensified off
             inverse off
             hotspot off
             input off.
      if rs_lineinfo-tabname eq 'GT_MASTER'.
        if
       gs_master-exidv ne gt_master-exidv or
           gs_master-brgew ne gt_master-brgew.
          write: / text-t05.
          write: /
         gt_master-exidv,
                   gt_master-brgew.
          gs_master = gt_master.
        endif.
        if gs_test-selected_recs_m eq rs_lineinfo-tabindex.
          clear gs_master.
        endif.
      endif.
    endform.                               " F01_ALV_EVENT_BEFORE_LINE_OUTP
    *&      Form  f01_alv_get_outtab
          text
    form f01_alv_get_outtab .
      field-symbols: .
       select
       exidv BRGEW VEGR1
        TARAG NTgew  meabm  BREIT HOEHE  VEGR2 VSTEL weRKS
                           from
                          (con_vekp) into corresponding fields of table
                           lt_slave up to gs_test-select_amount rows
                           where
                          exidv eq <ls_master>-exidv and
                           brgew eq -vegr1.
    append lines of lt_slave to gt_slave.
    endloop.
      sort gt_slave by exidv brgew vegr1.
    endif.
      describe table gt_master lines gs_test-selected_recs_m.
      describe table gt_slave  lines gs_test-selected_recs_s.
      clear gt_master.
      clear gt_slave.
    endform.                    " f01_alv_get_outtab
    *&      Module  d1001_pbo  OUTPUT
          text
    module d1001_pbo output.
    perform d1001_pbo.
    endmodule.                 " d1001_pbo  OUTPUT
    *&      Module  d1001_pai  INPUT
          text
    module d1001_pai input.
    perform d1001_pai.
    endmodule.                 " d1001_pai  INPUT

  • Doubt about Select statement.

    Hi folks!!
                 I have a few doubts about the select statements, it may be a silly things but its useful for me.
    what is   difference between below statment.
    1)SELECT * FROM TABLE.
    2)SELECT SINGLE * FROM TABLE
    3)SELECT SINGLE FROM TABLE.
    Hope i will get answer,thanks in advance.
    Regards
    Richie..

    Hi,
    try this and if possible use sap help.i mean place the cursor on select and press F1.
                 Types of select statements:
    1.     select * from ztxlfa1 into table it.
                 This is simple select statement to fetch all the data of db table into internal table it.
       2.   select * from ztxlfa1 into table it where lifnr between 'V2' and 'V5'.
            Thisis using where condition between v2 and v5.
      4. select * from ztxlfa1 where land1 = 'DE'. "row goes into default table work Area
      5. select lifnr land1 from ztxlfa1
            into corresponding fields of it   "notice 'table' is omitted
             where land1 = 'DE'.
              append it.
               endselect.
         Now data will go into work area. and then u will add it to internal table by     
            append statement.
      6.   Table 13.2 contains a list of the various forms of select as it is used with internal tables and their relative efficiency. They are in descending order of most-to-least efficient.
    Table 13.2  Various Forms of SELECT when Filling an Internal Table
    Statement(s)                                   Writes To
    select into table it                                    Body
    select into corresponding fields of table it   Body
    select into it                                    Header line
    select into corresponding fields of it           Header line
    7. SELECT VBRK~VBELN
           VBRK~VKORG
           VBRK~FKDAT
           VBRK~NETWR
           VBRK~WAERK
           TVKOT~VTEXT
           T001~BUKRS
           T001~BUTXT
        INTO CORRESPONDING FIELDS OF TABLE IT_FINAL
        FROM VBRK
        INNER JOIN TVKOT ON VBRKVKORG = TVKOTVKORG
        INNER JOIN T001 ON VBRKBUKRS = T001BUKRS
        WHERE VBELN IN DOCNUM AND VBRK~FKSTO = ''
       AND VBRK~FKDAT in date.
    Select statement using inner joins for vbrk and t001 and tvkot table for this case based on the conditions
    8. SELECT T001W~NAME1 INTO  TABLE IT1_T001W
    FROM T001W INNER JOIN EKPO ON T001WWERKS = EKPOWERKS
    WHERE EKPO~EBELN = PURORD.
    here selecting a single field into table it1_t001winner join on ekpo.
    9. SELECT BUKRS LIFNR EBELN FROM EKKO INTO CORRESPONDING FIELDS OF IT_EKKO WHERE     EBELN IN P_O_NO.
    ENDSELECT.
    SELECT BUTXT   FROM T001 INTO  IT_T001 FOR ALL ENTRIES IN IT_EKKO WHERE BUKRS = IT_EKKO-BUKRS.
    ENDSELECT.
    APPEND IT_T001.
    here I am using for all entries statement with select statement. Both joins and for all entries used to fetch the data on condition but for all entries is the best one.
    10. SELECT AVBELN BVTEXT AFKDAT CBUTXT ANETWR AWAERK INTO TABLE ITAB
                 FROM  VBRK AS A
                 INNER JOIN TVKOT AS B ON
                 AVKORG EQ BVKORG
                 INNER JOIN T001 AS C ON
                 ABUKRS EQ CBUKRS
                 WHERE  AVBELN IN BDOCU AND AFKSTO EQ ' ' AND B~SPRAS EQ
                 SY-LANGU
                 AND AFKDAT IN BDATE AND AVBELN EQ ANY ( SELECT VBELN FROM
                VBRP WHERE VBRP~MATNR EQ ITEMS ).
        Here we are using sub query in inner join specified in brackets.
    Thanks,
    chandu.

  • Select Statement or Function Module

    Hi all,
    I have lakhs of records in my database.When I am using the SAP standard function module C1F2_SUBSTANCES_READ for retreiving data it is taking time.I know all the data base tables .Shall I use to retreive data using select statements instead of the mentioned SAP standard function module.Could any one please explain which is best method to retrieve huge data and also explain reason?
    Thanks and Regards,
    Kanth

    Hi Shiva,
    If your Sure about exactly what data you want to fetch from the database, I would follow the below process.
    1) I would search if there is any standard function module or Bapi to do this... The reason why i do this is becuase as SAP has created those standard function modules or Bapi, the first advantage would be the program has good performance ( Moreever it also depends on how do you handle that in your program ).
    Moreover it handles varies business functionalities and authorizatiions etc..
    2)  If i dont find any standard function module or Bapi then if the data what you are selecting from database if it is used multiple times then i would create a zbapi or Zfunctionmodule and inlude my code in it... ( Here this custom function module can be used in many program : ie : modulerization ).
    Regards
    Satish Boguda

  • Passing values to OnDemandProcess from Select Statement on Reports Page

    I think I'm just missing some of the proper syntax, Can somebody please help me.
    As I've come to understand this process of passing the values,
    I recognize it as (3) steps.
    1. Referencing the "javascript" in the Select Statement of the Reports Page.
    2. Including the "javascript" in the Page Header region.
    3. Defining the Process as an OnDemand Application Process.
    My problem is:
    a. I can't seem to get the Value passed to the Application Process.
    b. I don't know how to reference the Value passed once I get it passed.
    Here's what I've got done so far:
    1. (The Select Statement)
       onClick="javascript:ORDER_CONNECT_SEQUENCE('||ID||')
    {code}
    2. (The javascript)
    {code}
    function ORDER_CONNECT_SEQUENCE('+ID+')
    var get = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=ORDER_CONNECT_SEQUENCE',0);
    get.add('+ID+');
    gReturn = get.get('+ID+');
    {code}
    3. (The Application Process)
    {code}
       BEGIN
       Select '+ID+' into THIS_CIRCUIT from dual;
    {code}
    I Know that the Application Process is being referenced and that the OnClick routine is working properly,
    because if I plug a Value into the Application Process, instead of using '+ID+',
    Then I get all of my desired results.
    Any help you can give me here is greatly appreciated.
    Thanks- Gary                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Dimitri, Thanks for your efforts here, but its still not working for me.
    Here's what I understand from your suggestions:
    1. (changes to the javascipt)
       a. replace function ORDER_CONNECT_SEQUENCE('+ID+')
           with
           function ORDER_CONNECT_SEQUENCE(pId)
       b. replace get.add('+ID+')
           with
           get.addParam('x01',pId)
       c. replace getReturn = get.get('+ID+')
          with
          getReturn = get.get()
          get = null2. (chages to the Application Process)
       a. add l_value varchar2(4000) to my list of declarations
       b. add l_value := wwv_flow.g_x01 below the begin statement
       c. I guess then I would reference the l_value like this:
           Select l_value into THIS_CIRCUIT from dual* Also, You didn't mention any changes in my Select statement in the Reports region of the page.
    FYI.
      onClick="javascript:ORDER_CONNECT_SEQUENCE('||ID||')
    {code}
      The 'ID' which I'm referencing here is an ID from the table which I'm querying.
    Am I misunderstanding you somewhere?
    Thanks- gary                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Error Extracting data from a STRUCTURE in SELECT statement

    Hi,
    I have an SAP defined structure BIW_KNA1_S which has been enhanced with 2 fields (ZZS1 and ZZS2). I need to populate these 2 fields with data from the 2 SORT fields from ADRC table.
    I tried the following code but i do not get any output. This piece of code is in a FORM statement from which i should return contents of table ITAB in the foll. code.
    DATA ZS TYPE TABLE OF ADRC WITH HEADER LINE.
    DATA ITAB LIKE TABLE OF BIW_KNA1_S WITH HEADER LINE.
    FIELD-SYMBOLS: <FS> LIKE ITAB.
    SELECT SORT1 SORT2 FROM ADRC INTO CORRESPONDING FIELDS OF TABLE
    ZS WHERE ADDRNUMBER IS NOT NULL.
    LOOP AT ITAB ASSIGNING <FS>.
    IF ZS-ADDRNUMBER IS NOT INITIAL.
      <FS>-ZZS1 = ZS-SORT1.
      <FS>-ZZS2 = ZS-SORT2.
    ENDIF.
    ENDLOOP.
    Since i did not get any output, I then added the foll. line of code before the LOOP statement.
    SELECT * FROM BIW_KNA1_S INTO CORRESPONDING FIELDS OF TABLE ITAB
    WHERE KUNNR IS NOT NULL.
    When i execute this, i get the foll. error.
    "BIW_KNA1_S is not defined in the ABAP dictionary as table, projection view or database view."
    How to extract data from a structure BIW_KNA1_S using a SELECT statement.
    Could someone help.
    Thanks

    Hi Roberto,
    Ok. Let me explain my requirement more clearly. I don't want to write the code in include ZXRSAU02. In ZXRSAU02, i will have only PERFORM statement which will call the FORM statement depending on the name of the program.
    Ex: PERFORM form_name ...tables i_t_data.
    In this way, i don't need to make any changes in this file. I will only need to make the changes in the report where my Actual FORM code resides. In the ABAP report, i will have my FORM code which will return contents.
    And this is the code which my FORM report will consist:
    DATA ZS TYPE TABLE OF ADRC WITH HEADER LINE.
    DATA ITAB LIKE BIW_KNA1_S OCCURS 10 WITH HEADER LINE.
    FIELD-SYMBOLS: <FS> LIKE ITAB.
    SELECT SORT1 SORT2 FROM ADRC INTO CORRESPONDING FIELDS OF TABLE ZS WHERE ADDRNUMBER IS NOT NULL.
    LOOP AT ITAB ASSIGNING <FS>.
    IF ZS-ADDRNUMBER IS NOT INITIAL.
      <FS>-ZZS1 = ZS-SORT1.
      <FS>-ZZS2 = ZS-SORT2.
    ENDIF.
    ENDLOOP.
    But as you said, i will have some problems i suppose. Like if my ADRC has some 70 records and if there are 100 records in BIW_KNA1_S, then when i try to copy the fields from ADRC into ITAB (BIW_KNA1_S) i might have problems. I will get back to you once i clarify these things.
    Thanks for your reply.

Maybe you are looking for

  • How to block the keyboard

    We are developing an application that should block the keyboard for all applications running under windows. (A time limited web browser) I know more or less how to do it on my Java Window but I need to block all the machine. Thanks in advance.

  • How to set database session info

    Jdev 9.0.3.3 My app manages user logins via a custom jaas implementation, but it connects to the db using a shared username/password. I capture the real username password of the logged in user in my app and want to add that info to some audit columns

  • Message: 'FILE CANNOT STORE XMP METADATA'

    I have encountered a problem that I cannot resolve by myself and cannot find any relevant information. I hope you can help: In some cases (this has only been happening with my last big job of about 1000 selected images which are divided in subfolders

  • I keep getting "Invalid URL" notices...is the Awesome Bar gone in Firefox 4?

    Just upgraded to FF4 from FF3.6.16. Tried typing keywords into the Awesome Bar expecting to get redirected, but instead all I get is a bevy of "Invalid URL" notices. Is the Awesome Bar gone in FF4? This is a serious inconvenience and I don't want to

  • Adobe X Pro - Trial

    Hello I am trying to download the trial version of Adobe X Pro but when I get to running the set up, I get the following error message: "This application cannot be installed on this operating system.  Setup will now terminate.  Please refer to the mi