Sorting in Sqlplus Select

Hi !
I want to see only first/last 10 records of any table throug Select command. Is it possible?
Thanks !

select * from user_objects where rownum < 11; -- first rows
select * from (select rn, a.* from user_objects where rownum < 21) where rn >10 -- some other set of rows
Note that this kind of paging functionality is notorious for being slow if you have a large resultset to walk through. It is far from being the best way, all it has going foritslef is that it is the most generic.
last rows can be had by using the first and order the data in descending order. Data in Oracle is not in any order unless you specify it. it may not (in theory) even come back in the same order from the select if you run it again.

Similar Messages

  • How to sort only a selected area?

    I'm trying to sort only a selected area (4 of my 5 columns) and not the entire table. Numbers help is worthless and nothing I've tried works. Any thoughts?

    What Yvan says, with additions.
    As well as copying the data to a second table, sorting it there, then pasting it back into the original table, Numbers lets you select and drag one or more columns from a table, then drop it on the sheet, where it will automatically become a new table.
    Here's an example:
    This is the original 10 column table. We wish to sort columns E, F and G into alphabetical order, while leaving the other columns in their original order. note the four locations where AAA, BBB, CCC and EEE appear in the same line.
    Click on any cell in column E. When the column tabs appear, select columns E, F and G by clicking on the E tab, then dragging to add to the selection.
    When the three columns are selected, click and hold on one of the three tabs, drag up until the columns separate from the table, then drag the selected columns to an empty space on the sheet. Drop to form a new three column table.
    If you now select column A on this table and Sort Ascending, the result will be as shown:
    Note that rows in the three columns moved together. If this is the result you are looking for, skip to the last step. If you want each of the three rows sorted individually, continue from here.
    To sort the three columns individually, each must be in a separate table. Separate them in the same manner as you did to separate the three column group from the original table: Select the individual column, then drag it's tab up until it separates, then left or right as appropriate and drop it to form a single column table. Take care to keep the separate columns in their original left to right order.
    Sort each column in turn.
    LAST STEP
    After sorting, drag each column (or the group of three if you did not sort the columns separately and individually) back to its place in the original table. Click on the temporary table to show the tab(s), Select the column(s), then click and drag a tab to move the column(s) to the original table. As you approach th place they came from, a double blue line will appear to show where the column(s) will be inserted if dropped. Drop at the appropriate location. If you are moving single columns, repeat until done.
    Finished. Note that each of the red columns is now in order. While AAA and BBB remain together, the other 'matched sets' no longer match.
    Regards,
    Barry

  • Items sorted in mb01 selection screen

    Hi gurus,
    My problem thatu2019s I need that the sequence of the items in the tx.mb01 selection screen might be sorted by material code.
    However, the sort of these items is the same that in purchase order. Originally the purchase order is not sorted by material codeu2026so if I try to sort by this code it doesn`t change the assignment to the item number.
    What can I do? I canu2019t sort the tx.mb01 selection screen, I can´t change the relation between item number and material code when I sort by material code and this itemu2019s sort is assigned automatically from different purchase requisition, could I parametrize this?
    Thankxxxx.....

    I do not know any option to achieve this.
    But why do you need it? Why didn't you create the PO item sequence in the sequence you need for MB01 if it that important?
    Why dont you use MIGO, here you can simply sort by material selecting the column header and then right mouse clic. Sorting is among the enties in the context menu

  • Sort the Data Selection in TVARV Table

    hello...i wanted to run a SAP Standard Program and it is have a variant selection for me to select the variable from TVARV table. When this program run, I would like to have a selection of choosing the latest date to run the program based on the variant I save. I created a variables in the TVARV table but I cannot see any selection which can sort the selection based on the latest date. I can only choose to be EQ and etc. Is there any selection that I can make so that the program always choose to be run based on the latest date? thanksss alot!!!

    Look at table VARID.
    Rob

  • Sort Record By select different critirea in listbox

    I would like to a sorting for my records....which when user select a option let's say name from the listbox....The records which already displayed on JSP page need to be sorted according to 'name'
    Anyone knows how to do it?
    Thank You In advanced....

    Use this code in your jsp
    String sortby_param=request.getParameter("sortby");
    // "sortby" name of u r field
    String Sql="select * from emp order by'"+sortby_param+"'";
    Hope it helps

  • Sort itab by select-options

    Hi,
    i have this code:
    SELECT-OPTIONS:   S_MATNR   FOR MARA-MATNR.
      SELECT  * FROM MARA WHERE MATNR IN S_MATNR.
        CLEAR: WA_ITAB.
        WA_ITAB-MATNR = MARA-MATNR.
        WA_ITAB-MTART = MARA-MTART.
        WA_ITAB-MATKL = MARA-MATKL.
        APPEND WA_ITAB TO IT_ITAB.
      ENDSELECT.
    now i want to sort the it_itab by the given select-options. Is this possible?
    ( select-options can have single valuse, ranges, meta characters)
    Or is it possible to use select from table mara in order by select-options?
    Regards, Dieter

    Hi,
    First of all please avoid such a select statement. It causes a lot of performance problem.
    Code like this
    SELECT  *  FROM MARA
    INTO CORRESPONDING FIELDS OF TABLE IT_ITAB
    WHERE MATNR IN S_MATNR.
    Secondly what do you mean by SORT ITAB by SELECT_OPTIONS S_MATNR.
    You yourself have said that the select-option can contain single values or multiple values or ranges.
    So how should the SORT be?
    Kinldy check with the requirment. It seems a little weird.
    Regards,
    Ankur Parab

  • Getting sort Dump on select Query

    Hi expert,
    I m new in abap i m getting short dump on
    *& Report  ZREAD_ITAB                                                  *
    REPORT  ZREAD_ITAB                              .
    TABLES : MARC,MARA,MAKT.
    SELECT-OPTIONS S_MATNR FOR MARC-MATNR .
    PARAMETER P_WERKS LIKE MARC-WERKS.
    DATA T_MARC LIKE MARC OCCURS 0 WITH HEADER LINE.
    DATA T_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.
    DATA T_MAKT LIKE MAKT OCCURS 0 WITH HEADER LINE.
    DATA : BEGIN OF ITAB OCCURS 0,
           MATNR LIKE MARC-MATNR,
           WERKS LIKE MARC-WERKS,
           MBRSH LIKE MARA-MBRSH,
           MEINS LIKE MARA-MEINS,
           MATKL LIKE MARA-MATKL,
           MAKTX LIKE MAKT-MAKTX,
           SPRAS LIKE MAKT-SPRAS,
           END OF ITAB.
    SELECT MATNR WERKS LVORM FROM MARC INTO CORRESPONDING FIELDS OF TABLE
    T_MARC WHERE MATNR IN
                S_MATNR AND WERKS = P_WERKS.
    IF T_MARC[] IS NOT INITIAL.
    *this line)-  SELECT MATNR MBRSH MEINS MATKL FROM MARA INTO T_MARA
      FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR.
      endselect.
      SELECT MATNR MAKTX SPRAS FROM MAKT INTO CORRESPONDING FIELDS OF
      T_MAKT FOR ALL ENTRIES IN T_MARC WHERE MATNR =
      T_MARC-MATNR.
      endselect.
      LOOP AT T_MARC.
        READ TABLE T_MARA WITH KEY MATNR = T_MARC-MATNR.
        MOVE :
              T_MARC-MATNR TO ITAB-MATNR,
              T_MARC-WERKS TO ITAB-WERKS.
        READ TABLE T_MAKT WITH KEY MATNR = T_MARC-MATNR.
        MOVE :
              T_MARA-MBRSH TO ITAB-MBRSH,
              T_MARA-MEINS TO ITAB-MEINS,
              T_MARA-MATKL TO ITAB-MATKL,
              T_MAKT-MAKTX TO ITAB-MAKTX,
              T_MAKT-SPRAS TO ITAB-SPRAS.
      ENDLOOP.
    ELSE .
    WRITE:/ 'NO DATA FOUND'.
    ENDIF.
    Please solve.
    Regards ,
    Ashish

    Hi,
    In addition to above code, you need to place the mandatory check when using for all entries for checking the driver table is initial or not. If T_MARC[] IS INITIAL, all the entries from MARA will be selected.
    IF NOT T_MARC[] IS INITIAL.  "Mandatory check
    SELECT MATNR MBRSH MEINS MATKL FROM MARA INTO CORRESPONDING FIELDS OF TABLE T_MARA
      FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR.
    SELECT MATNR MAKTX SPRAS FROM MAKT INTO CORRESPONDING FIELDS OF TABLE T_MAKT
      FOR ALL ENTRIES IN T_MARC WHERE MATNR = T_MARC-MATNR AND SPRAS = SY-LANGU.
    ENDIF.
    Thanks,
    Vinod.

  • How to sort a selection of cells?

    If anyone can answer this question I will be very grateful - here's the scoop: I need to sort the data in a selection of cells that run down several rows - but NOT all of the cells in the entire row. The last column contains formulas which must NOT be sorted - if those cells are included in the sort, all of the data they contain will be out of order and all fouled up. So, I need to select, for instance, A1:G10 - and not touch anything that is in H1:H10. It appears that with Numbers, it's all or nothing - which, if that's true, is a really big problem. I can't sort the entire selection of rows and then drag and replace the formulas in the last column - there are thousands of rows and it has already taken me an hour to straighten out this mess. I can do this in 2 seconds in Excel, which I've used for very complex spreadsheets and models for years - but I expected to at least be able to do some basic calculating with Numbers in a reasonably easy fashion. I am royally frustrated - what is the hidden secret to sorting a selection of cells without being forced to sort an entire row? Thanks for your help!

    Numbers sorts apply to the whole table, or in the case of sorting selected rows, to the whole width of the table. For ANY sort, header rows and footer rows are not included in the sort.
    Two ways around this limitation are to:
    1.
    Place the 'non-sorting'columns into a separate table, and use INDIRECT addressing to reference cells on the sorting table.
    2.
    Write the formulas so as to be immune to sorting. Use column only references where possible and construct cell addresses for rows other than the result row using the ROW() function.
    Check the Functions and Formulas User Guide for ROW(), INDIRECT() and OFFSET() for descriptions and examples. That guide and the Numbers '09 User Guide are available for download through Numbers's Help menu.
    Post a question regarding specific formulas if you require further assistance.
    Regards,
    Barry

  • How to keep selection (or select) the row of SORTED ALV table?

    Dear Experts,
    I have WD ALV table with grouped and therefore sorted layout. I know that sorted ALV beahve differently.
    The problem is that if the values in cell is updated (setting attribute of selected element of context node bound to the ALV table), then the whole table is redrawn and selection disappears. It does not happen when layout of ALV is not sorted/grouped.
    I need somehow to select the ALV line again. Method MOV_To of IF_WD_CONTEXT_NODE for some reason is not working in sorted ALV (it selects element on node but not in ALV table). And in ALV Interface controller I also could not find anything usefull.
    Thanks.
    Best regards,
    Dmitry.

    Hallo Dmitry,
    See the sap note :1445428
    [https://service.sap.com/sap/support/notes/1445428|https://service.sap.com/sap/support/notes/1445428]
    Follow this thread which suggest a work around.
    [ALV Table set lead selection while sorting is enable for a column|ALV Table set lead selection while sorting is enable for a column]

  • Sort and select in database..

    hi All...
    i write a coding that store data in database, that i have two column rule and weight. after that, i want to display the data with weight sorting ascending and select distinct rule.
    but it's not working. nothings error but it don't do nothing.
    is it wrong with my sql statement?
    public void insertDatabase(Vector rule, double weight){
               try{
                     String sqlInsert = "INSERT INTO Sheet2 ( Rule, Weight ) " +
                          "VALUES ( '"+ rule +"', '" + weight + "' )";
                     int row = myStatement.executeUpdate(sqlInsert);                             myResultSetDisplay = myStatement.executeQuery("Select * from Sheet2");
                     myResultSetSort = myStatement.executeQuery("SELECT * FROM Sheet2 ORDER by Pemberat ASC");
                     myResultSetDistinct = myStatement.executeQuery("SELECT DISTINCT Petua FROM Sheet2");
                catch(SQLException e){
                            System.out.println(e.getMessage());
               }//catch
           }

    how to use admin tool I was talking about the admin tool of the database.
    or debugger?If you're using an IDE, like Eclpise, you can use the built-in debugger to execute the code step by step.
    and i got error that
    [Microsoft][ODBC Microsoft Access Driver]Attribute
    cannot be set nowThe message is clear. It's too late to set the attribute. You already have issued some actions on the connection. Rearrange your logic.

  • Group by sql statement is not sorted.

    execut sql statement include group by clause in a oci program, the result is not sorted.
    I don't know why..
    in SqlPlus, same sql statement return sorted data.
    SELECT A.SHOP_ID,A.RESALE_TYPE,
    SUM(A.DEAL_AMT,0) DEAL_AMT
    FROM SHOP_ACC A, CD_TAB C
    WHERE A.RESALE_TYPE = C.CD(+)
    AND C.GB = 'AB'
    AND A.ACC_M = :s_AccMonth
    AND DEAL_GB='FOD'
    GROUP BY A.SHOP_ID,A.RESALE_TYPE
    But, RESALE_TYPE is outer join on CD_TAB..
    if remove outer join between CD_TAB and SHOP_ACC,
    sql statement is return sorted result.
    and if modify the column RESALE_TYPE like
    RESALE_TYPE||']' or NVL(RESALE_TYPE,'AAA')
    return sorted result..
    please help..
    thanks for your kind.

    thank you.. for reply..
    I knew that order by clause make to sort.
    but, using group by clause alone in SQL statement, that return sorted results too.
    I was found a fault that outer join table CD_TAB column of one is not symbloc "(+)" in SQL statement
    SELECT A.SHOP_ID,A.RESALE_TYPE,
    SUM(A.DEAL_AMT,0) DEAL_AMT
    FROM SHOP_ACC A, CD_TAB C
    WHERE A.RESALE_TYPE = C.CD(+)
    AND C.GB = 'AB' <----------- AND C.GB(+) = 'AB'
    AND A.ACC_M = :s_AccMonth
    AND DEAL_GB='FOD'
    GROUP BY A.SHOP_ID,A.RESALE_TYPE
    I want to know that why in other application - such as SqlPlus or SqlGate and ..etc. - this fault was ignore.. but OCI application such as my application programs is not ignore.. and is not sorted..
    thank you..

  • Sorting not working correctly for date field in alv report

    Hi All,
    My report displays many rows also containing date type fields of bldat,budat .
    When I sort the report selecting field of type bldat budat the sorting is not correct for the year.
    Ex:
    Invoice doc dat
    01-25-2011
    01-21-2011
    02-02-2011
    10-25-2010
    11-20-2010
    If I use ascending then it is sorted as :
    Invoice doc dat
    01-21-2011
    01-25-2011
    02-02-2011
    10-20-2010
    10-25-2010
    Why the sorting is not working correct for year.(2010 records should have been first).
    The field wa_tab-bldat is of type char10.
    It is populated as wa_tab-bldat = bsak-bldat.
    Kindly suggest what can be done.

    The field wa_tab-bldat is of type char10
    Then what it does is correct.
    Refer to type datum...it will work

  • How to sort a object vector by its integer item ?

    hi everybody,
    [there were few topics on this in the forum, but nothing could solve my problem yet. so, please instruct me]
    I have to sort a vector which contains objects, where each object represents, different data types of values,
    ex: {obj1, obj2, obj3, ....}
    obj1---->{String name, int ID, String[] departments}
    i have to sort this vector at three times, once by name, then by ID and then by departments.
    Leaving name and department , first i want to sort the ID of each object and then re-arrange the order of objects in the array according to new order.
    what i did was, copied the vector all objects' ID values to an integer array then i sorted it using selection sort. but now i want to re-arrange the vector, but i still can't. please guide.
    here is the sort i did, and the
    int[] ID = new int[mintomaxID.size()];
              for(int i=0;i<mintomaxID.size();i++)
                   ObjectStore_initialData obj_id = (ObjectStore_initialData)mintomaxID.elementAt(i);
                   ID[i] = obj_id.getID();
              System.out.println("Before sorting array");
              for(int i=0;i<ID.length;i++)
                   System.out.println(ID);     
              System.out.println();
              int i, j, m, mi;
    for (i = 0; i < ID.length - 1; i++) {
    /* find the minimum */
    mi = i;
    for (j = i+1; j < ID.length; j++) {
    if (ID[j] < ID[mi]) {
    mi = j;
    m = ID[mi];
    /* move elements to the right */
    for (j = mi; j > i; j--) {
    ID[j] = ID[j-1];
    ID[i] = m;
    System.out.println("After sorting array");
    for(int y=0;y<ID.length;y++)
                   System.out.println(ID[y]);     
    //*****here is where i need to re-arrange the entire vector by ID.
    I do understand this is some sort of database sort type of a question. but there's no database. it's simply i just want to sort the vector.
    Thank you.

    hi camickr,
    thank you for the detailed reply. but i still don't understand somethings. i tried to read the API and look for the collections.
    i have ObjectStore_initialData class (similar to person class), so do i still have to do a comparable class out of this class ? please simplify that.
    public class ObjectStore_initialData
         String NAME;
         int ID;
         String[] DPART;     
         public ObjectStore_initialData(String name, int id, String[] departments)
              NAME=name;
              ID=id;
              DPART = departments;
    public String getName()//----
              return NAME;
    public String getID()//----
              return ID;
    public String getDpart()//----
              return DPART;
    /*next class is the interface to collect the values from the user and put all of them at once in a vector*/
    //this class is to sort the vector by ID
    public class sorter
       public sorter()
       public static void sortbyID(Vector mintomaxID)
             int[] ID = new int[mintomaxID.size()];
              for(int i=0;i<mintomaxID.size();i++)
                   ObjectStore_initialData obj_id = (ObjectStore_initialData)mintomaxID.elementAt(i);
                   ID[i] = obj_id.getID();
              System.out.println("Before sorting array");
              for(int i=0;i<ID.length;i++)
                   System.out.println(ID);     
              System.out.println();
              int i, j, m, mi;
    for (i = 0; i >< ID.length - 1; i++) {
    /* find the minimum */
    mi = i;
    for (j = i+1; j < ID.length; j++) {
    if (ID[j] < ID[mi]) {
    mi = j;
    m = ID[mi];
    /* move elements to the right */
    for (j = mi; j > i; j--) {
    ID[j] = ID[j-1];
    ID[i] = m;
    System.out.println("After sorting array");
    for(int y=0;y<ID.length;y++)
                   System.out.println(ID[y]);     
    //*****here is where i need to re-arrange the entire vector by ID.
    /*new comparable class */
    public class ObjectStore_initialData implements Comparable
         String NAME;
         int ID;
         String[] DPART;     
         public ObjectStore_initialData(String name, int id, String[] departments)
              NAME=name;
              ID=id;
              DPART = departments;
    public String getName()//----
              return NAME;
    public String getID()//----
              return ID;
    public String getDpart()//----
              return DPART;
    static class IDComparator implements Comparator
              public int compare(Object o1, Object o2)
                   ObjectStore_initialData p1 = (ObjectStore_initialData )o1;
                   ObjectStore_initialData p2 = (ObjectStore_initialData )o2;
                   return p1.getID() - p2.getID();
    /*how can i put the vector here to sort? */
    public sorter()
    public static void sortbyID(Vector mintomaxID)
    int[] ID = new int[mintomaxID.size()];
              for(int i=0;i<mintomaxID.size();i++)
                   ObjectStore_initialData obj_id = (ObjectStore_initialData)mintomaxID.elementAt(i);
                   ID[i] = obj_id.getID();
              System.out.println("Before sorting array");
              for(int i=0;i<ID.length;i++)
                   System.out.println(ID[i]);     
              System.out.println();
              int i, j, m, mi;
    for (i = 0; i >< ID.length - 1; i++) {
    /* find the minimum */
    mi = i;
    for (j = i+1; j < ID.length; j++) {
    if (ID[j] < ID[mi]) {
    mi = j;
    m = ID[mi];
    /* move elements to the right */
    for (j = mi; j > i; j--) {
    ID[j] = ID[j-1];
    ID[i] = m;
    System.out.println("After sorting array");
    for(int y=0;y<ID.length;y++)
                   System.out.println(ID[y]);     
    /* using collections to sort*/
    Collections.sort(mintomaxID, new IDComparator());
    and to check the new order i wanted to print the vector to command line.
    still it doesn't do anything.
    the url you mentioned is good as i see. but how can i implement that in my class ? please instruct and simplify. i know i just repeated the code, i didn't understand to do a comparable class in collections for this class. Please explain where i'm head to and where's my misleading point here.
    Thank you.
    Message was edited by:
    ArchiEnger.711

  • Report Output is not same as R/3 4.7 and ECC6 ( sort issue)

    Dear Experts,
    I have a problem with external sort used in the program. due to that report output records are not in the same order.
    For example, i am extracting data from BSEG with fields company code, fiscal year, document no, item no, amount and GL Respectively.
    in both the systems (R/3 4.7 and ECC6), data in internal tables are in same order by default.
    but after the external sort using filelds company code, fiscal year and document no.
    output records are sorted exactly with respect to the external sort order in both systems, but for certain line items are not in same order.
    Please check below example.
    For example in R/3:
    684
    2012
    5000000532
    5
    H
    2662.51
    411100
    684
    2012
    5000000532
    4
    H
    13
    555200
    684
    2012
    5000000532
    3
    S
    0.5
    635400
    684
    2012
    5000000532
    2
    S
    12.5
    627800
    684
    2012
    5000000532
    1
    S
    2662.51
    555209
    In ECC6,
    684
    2012
    5000000532
    1
    S
    2662.51
    555209
    684
    2012
    5000000532
    2
    S
    12.5
    627800
    684
    2012
    5000000532
    3
    S
    0.5
    635400
    684
    2012
    5000000532
    4
    H
    13
    555200
    684
    2012
    5000000532
    5
    H
    2662.51
    411100

    The order of extracted records can no be assumed to be constant, any SQL optimizer can change behavior, even without any wide upgrade, but a single database or kernel patch as well as many operation of database administrator can change the order, as well as a change of user behavior, if they fill now another field in selection. So it is good practices to always sort (or use sorted type) internal table extracted or use a ORDER BY clause (provided there is an index in database, else do not)
    Read online documentation of SELECT statement clause ORDER BY
    The order of the rows in the result set refers to all columns that are not listed after ORDER BY, is undefined, and can be different in repeated executions of the same SELECT statement.
    There are also some [MANY > 1000] OSS notes on the subject (look for your database, e.g.  1858427 - Incorrect Sorting of SQL-Select Statement, 1859655 - The result set of an SQL-Select Statement may not be sorted, 1858479 - Result set of select statement is not sorted, 1858569 - Incorrect access to result set of SELECT statement, etc.)
    Also if you sort an internal table and require records with same key values to keep their respective order, use the STABLE clause.
    Regards,
    Raymond

  • To hide some headings in top of page during sorting of fields...

    dear experts,
    I have a report in which i am fetching multiple company codes in report and in o/p they are displayed according to company codes, but during sorting of any field in list i want to hide some of the headings in top of page...for any of the radio buttons the headings which i want to hide are...
    1) company code
    2) opening balance and
    3) closing balance
    please help...my code is as follows...
    TYPE-POOLS:slis.
    TABLES:bkpf,bseg,kna1,bsid.
    TYPES:BEGIN OF ty_bsad,
    bukrs TYPE bsad-bukrs,
    gjahr TYPE bsad-gjahr,
    kunnr TYPE bsad-kunnr,
    belnr TYPE bsad-belnr,
    budat TYPE bsad-budat,
    xblnr TYPE bsad-xblnr,
    bldat TYPE bsad-bldat,
    augdt TYPE bsad-augdt,
    dmbtr type bsad-dmbtr,
    END OF ty_bsad.
    TYPES:BEGIN OF ty_kna1,
    kunnr TYPE kna1-kunnr,
    name1 TYPE kna1-name1,
    city  TYPE kna1-ort01,
    END OF ty_kna1.
    TYPES:BEGIN OF ty_knb1,
    kunnr TYPE knb1-kunnr,
    bukrs TYPE knb1-bukrs,
    vzskz TYPE knb1-vzskz,
    END OF ty_knb1.
    TYPES:BEGIN OF ty_bkpf,
    bukrs TYPE bkpf-bukrs,
    gjahr TYPE bkpf-gjahr,
    hwaer TYPE bkpf-hwaer,
    kursf TYPE bkpf-kursf,
    bktxt TYPE bkpf-bktxt,
    belnr TYPE bkpf-belnr,
    budat TYPE bkpf-budat,
    xblnr TYPE bkpf-xblnr,
    bldat TYPE bkpf-bldat,
    waers TYPE bkpf-waers,
    END OF ty_bkpf.
    TYPES:BEGIN OF ty_bsid,
    bukrs TYPE bsid-bukrs,
    gjahr TYPE bsid-gjahr,
    kunnr TYPE bsid-kunnr,
    belnr TYPE bsid-belnr,
    budat TYPE bsid-budat,
    xblnr TYPE bsid-xblnr,
    bldat TYPE bsid-bldat,
    augdt TYPE bsid-augdt,
    dmbtr type bsid-dmbtr,
    END OF ty_bsid.
    TYPES:BEGIN OF ty_bseg,
    bukrs TYPE bseg-bukrs,
    gjahr TYPE bseg-gjahr,
    belnr TYPE bseg-belnr,
    kunnr TYPE bseg-kunnr,
    werks TYPE bseg-werks,
    umskz TYPE bseg-umskz,
    zuonr TYPE bseg-zuonr,
    dmbtr TYPE bseg-dmbtr,
    zbd1t TYPE bseg-zbd1t,
    sgtxt TYPE bseg-sgtxt,
    shkzg TYPE bseg-shkzg,
    zterm TYPE bseg-zterm,
    zfbdt TYPE bseg-zfbdt,
    END OF ty_bseg.
    TYPES:BEGIN OF ty_open,
    bukrs TYPE bsid-bukrs,
    shkzg TYPE bsid-shkzg,
    dmbtr TYPE bsid-dmbtr,
    umskz TYPE bsid-umskz,
    END OF ty_open.
    **Main internal Table
    **For both open & cleared Customer
    DATA:BEGIN OF it_main_all OCCURS 0,
    bukrs TYPE bsad-bukrs,
    gjahr TYPE bsad-gjahr,
    kunnr TYPE bsad-kunnr,
    belnr TYPE bsad-belnr,
    budat TYPE bsad-budat,
    xblnr TYPE bsad-xblnr,
    bldat TYPE bsad-bldat,
    augdt TYPE bsad-augdt,
    dmbtr type bsad-dmbtr,
    hwaer TYPE bkpf-hwaer,
    kursf TYPE bkpf-kursf,
    bktxt TYPE bkpf-bktxt,
    name TYPE kna1-name1,
    city TYPE kna1-ort01,
    vzskz TYPE knb1-vzskz,
    lights TYPE c,
    END OF it_main_all.
    **For Opening balance
    DATA:BEGIN OF it_main_open1 OCCURS 0,
    bukrs TYPE bsid-bukrs,
    opening TYPE p DECIMALS 2,
    END OF it_main_open1.
    **Internal tables
    DATA : t_bsad TYPE STANDARD TABLE OF ty_bsad,
    w_bsad TYPE ty_bsad,
    t_bkpf TYPE STANDARD TABLE OF ty_bkpf,
    w_bkpf TYPE ty_bkpf,
    t_kna1 TYPE STANDARD TABLE OF ty_kna1,
    w_kna1 TYPE ty_kna1,
    t_knb1 TYPE STANDARD TABLE OF ty_knb1,
    w_knb1 TYPE ty_knb1,
    t_bsid TYPE STANDARD TABLE OF ty_bsid,
    w_bsid TYPE ty_bsid,
    t_bseg TYPE STANDARD TABLE OF ty_bseg,
    w_bseg TYPE ty_bseg,
    t_open TYPE STANDARD TABLE OF ty_open,
    w_open TYPE ty_open.
    **ALV display variables
    DATA:fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
    gd_layout TYPE slis_layout_alv,
    gt_events TYPE slis_t_event,
    gt_list_top_of_page TYPE slis_t_listheader,
    heading TYPE slis_t_listheader,
    g_save(1) TYPE c,
    g_exit(1) TYPE c,
    g_variant TYPE disvariant,
    gx_variant TYPE disvariant,
    it_sort TYPE slis_t_sortinfo_alv,
    x_sort TYPE slis_sortinfo_alv.
    **Selection Screens
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:s_bukrs FOR bkpf-bukrs OBLIGATORY,
    s_gjahr FOR bkpf-gjahr OBLIGATORY NO-EXTENSION NO INTERVALS,
    s_kunnr FOR bseg-kunnr OBLIGATORY NO-EXTENSION NO INTERVALS,
    s_name1 FOR kna1-name1 NO-EXTENSION NO INTERVALS,
    s_date FOR bkpf-budat OBLIGATORY,
    s_umskz FOR bsid-umskz.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETERS:xnorm AS CHECKBOX DEFAULT 'X',
    xshbv AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK b3.
    DATA:golive TYPE d VALUE '20080401',
    date TYPE d,
    date1 TYPE d,
    closing TYPE p DECIMALS 2 VALUE 0,
    opening TYPE p DECIMALS 2 VALUE 0.
    **Start Of Selection
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM events.
    PERFORM f_layout.
    PERFORM display.
    FORM get_data .
    **Open Customers master data
    SELECT
    bukrs gjahr kunnr belnr budat xblnr bldat augdt dmbtr
    FROM bsid
    INTO TABLE t_bsid
    WHERE bukrs IN s_bukrs
    AND gjahr IN s_gjahr
    AND kunnr IN s_kunnr
    AND budat IN s_date
    AND umskz IN s_umskz.
    **Clear Customers master data
    SELECT
    bukrs gjahr kunnr belnr budat xblnr bldat augdt dmbtr
    FROM bsad
    INTO TABLE t_bsad
    WHERE bukrs IN s_bukrs
    AND gjahr IN s_gjahr
    AND kunnr IN s_kunnr
    AND budat IN s_date
    AND umskz IN s_umskz.
    ****Open Customers data
    IF NOT t_bsid[] IS INITIAL.
    SORT t_bsid BY bukrs bldat.
    SELECT
    bukrs gjahr hwaer kursf bktxt belnr
    FROM bkpf
    INTO CORRESPONDING FIELDS OF TABLE t_bkpf
    FOR ALL ENTRIES IN t_bsid
    WHERE bukrs = t_bsid-bukrs
    AND gjahr = t_bsid-gjahr
    AND belnr = t_bsid-belnr.
    SORT t_bkpf.
    SELECT
    kunnr name1 ort01
    FROM kna1
    INTO TABLE t_kna1
    FOR ALL ENTRIES IN t_bsid
    WHERE kunnr = t_bsid-kunnr
    AND name1 IN s_name1.
    SORT t_kna1.
    SELECT
    kunnr bukrs vzskz
    FROM knb1
    INTO TABLE t_knb1
    FOR ALL ENTRIES IN t_bsid
    WHERE kunnr = t_bsid-kunnr
    AND bukrs = t_bsid-bukrs.
    SORT t_knb1.
    LOOP AT t_bsid INTO w_bsid.
    it_main_all-bukrs = w_bsid-bukrs.
    it_main_all-kunnr = w_bsid-kunnr.
    it_main_all-gjahr = w_bsid-gjahr.
    it_main_all-belnr = w_bsid-belnr.
    it_main_all-budat = w_bsid-budat.
    it_main_all-xblnr = w_bsid-xblnr.
    it_main_all-bldat = w_bsid-bldat.
    READ TABLE t_bkpf INTO w_bkpf WITH KEY bukrs = w_bsid-bukrs gjahr = w_bsid-gjahr belnr = w_bsid-belnr BINARY SEARCH.
    IF sy-subrc EQ 0.
    it_main_all-hwaer = w_bkpf-hwaer.
    it_main_all-kursf = w_bkpf-kursf.
    it_main_all-bktxt = w_bkpf-bktxt.
    ENDIF.
    READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_bsid-kunnr BINARY SEARCH.
    IF sy-subrc EQ 0.
    it_main_all-name = w_kna1-name1.
    it_main_all-city = w_kna1-city.
    ENDIF.
    READ TABLE t_knb1 INTO w_knb1 WITH KEY kunnr = w_bsid-kunnr BINARY SEARCH.
    IF sy-subrc EQ 0.
    it_main_all-vzskz = w_knb1-vzskz.
    ENDIF.
    it_main_all-lights = '1'.
    APPEND it_main_all.
    CLEAR it_main_all.
    CLEAR : w_bsid, w_bkpf, w_kna1, w_knb1.
    ENDLOOP .
    ENDIF.
    **Clear customers data
    IF NOT t_bsad[] IS INITIAL.
    SORT t_bsad BY bukrs bldat.
    SELECT
    bukrs gjahr hwaer kursf bktxt belnr
    FROM bkpf
    INTO CORRESPONDING FIELDS OF TABLE t_bkpf
    FOR ALL ENTRIES IN t_bsad
    WHERE bukrs = t_bsad-bukrs
    AND gjahr = t_bsad-gjahr
    AND belnr = t_bsad-belnr.
    SORT t_bkpf.
    SELECT
    kunnr name1 ort01
    FROM kna1
    INTO TABLE t_kna1
    FOR ALL ENTRIES IN t_bsad
    WHERE kunnr = t_bsad-kunnr
    AND name1 IN s_name1.
    SORT t_kna1.
    SELECT
    kunnr bukrs vzskz
    FROM knb1
    INTO TABLE t_knb1
    FOR ALL ENTRIES IN t_bsad
    WHERE kunnr = t_bsad-kunnr
    AND bukrs = t_bsad-bukrs.
    SORT t_knb1.
    LOOP AT t_bsad INTO w_bsad.
    it_main_all-bukrs = w_bsad-bukrs.
    it_main_all-gjahr = w_bsad-gjahr.
    it_main_all-kunnr = w_bsad-kunnr.
    it_main_all-belnr = w_bsad-belnr.
    it_main_all-budat = w_bsad-budat.
    it_main_all-xblnr = w_bsad-xblnr.
    it_main_all-bldat = w_bsad-bldat.
    READ TABLE t_bkpf INTO w_bkpf WITH KEY bukrs = w_bsad-bukrs gjahr = w_bsad-gjahr belnr = w_bsad-belnr BINARY SEARCH.
    IF sy-subrc EQ 0.
    it_main_all-hwaer = w_bkpf-hwaer.
    it_main_all-kursf = w_bkpf-kursf.
    it_main_all-bktxt = w_bkpf-bktxt.
    ENDIF.
    READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_bsad-kunnr BINARY SEARCH.
    IF sy-subrc EQ 0.
    it_main_all-name = w_kna1-name1.
    it_main_all-city = w_kna1-city.
    ENDIF.
    READ TABLE t_knb1 INTO w_knb1 WITH KEY kunnr = w_bsad-kunnr BINARY SEARCH.
    IF sy-subrc EQ 0.
    it_main_all-vzskz = w_knb1-vzskz.
    ENDIF.
    it_main_all-lights = '3'.
    APPEND it_main_all.
    CLEAR : w_bsad, w_bkpf, w_kna1, w_knb1.
    ENDLOOP .
    ENDIF.
    ENDFORM.                    " get_data
    *&      Form  events
    FORM events .
    DATA : l_i_event TYPE slis_alv_event.
    l_i_event-name = 'TOP_OF_PAGE' .
    l_i_event-form = 'TOP2' .
    APPEND l_i_event TO gt_events .
    CLEAR l_i_event .
    ENDFORM.                    " events
    *&      Form  f_layout
    FORM f_layout .
    CLEAR gd_layout.
    gd_layout-detail_popup = 'X'.
    gd_layout-zebra = 'X'.
    gd_layout-no_vline = ' '.
    gd_layout-lights_fieldname = 'LIGHTS'.
    gd_layout-colwidth_optimize = 'X'.
    ENDFORM.                    " f_layout
    *&      Form  display
    FORM display .
    fieldcatalog-fieldname = 'BUKRS'.
    fieldcatalog-tabname = 'IT_MAIN_ALL'.
    fieldcatalog-seltext_m = 'Company Code'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'GJAHR'.
    fieldcatalog-tabname = 'IT_MAIN_ALL'.
    fieldcatalog-seltext_m = 'Fiscal year'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'BELNR'.
    fieldcatalog-tabname = 'IT_MAIN_ALL'.
    fieldcatalog-seltext_m = 'Doc No.'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'BLDAT'.
    fieldcatalog-tabname = 'IT_MAIN_ALL'.
    fieldcatalog-seltext_m = 'Doc Date'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'BUDAT'.
    fieldcatalog-tabname = 'IT_MAIN_ALL'.
    fieldcatalog-seltext_m = 'Posting date'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'DMBTR'.
    fieldcatalog-tabname = 'IT_MAIN_ALL'.
    fieldcatalog-seltext_m = 'Amt in local cur.'.
    fieldcatalog-do_sum = 'X'.
    fieldcatalog-just = 'R'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    **For Subtotal of fields
    x_sort-fieldname = 'BUKRS' .
    x_sort-group     = '*'.
    x_sort-subtot    = 'X'.
    APPEND x_sort TO it_sort.
    CLEAR x_sort .
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    i_callback_program      = sy-repid
    is_layout               = gd_layout
    it_fieldcat             = fieldcatalog[]
    it_sort                 = it_sort
    i_default               = 'X'
    it_events               = gt_events[]
    TABLES
    t_outtab                = it_main_all
    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.
    *&      Form  top_of_page
    FORM top_of_page.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    i_logo             = 'RUCHI_LOGO'
    it_list_commentary = heading[].
    ENDFORM.
    *&      Form  opening
    FORM opening USING p_bukrs TYPE bsid-bukrs.
    DATA : opdate TYPE d.
    IF s_date-low < golive.
    opening = 0.
    ELSE.
    opdate = s_date-low - 1.
    SELECT
    bukrs shkzg dmbtr umskz
    FROM bsid
    INTO TABLE t_open
    WHERE bukrs IN s_bukrs
    AND kunnr IN s_kunnr
    AND gjahr IN s_gjahr
    AND budat <= opdate.
    LOOP AT t_open INTO w_open.
    IF w_open-shkzg = 'S'.
    opening = opening + w_open-dmbtr.
    ELSEIF w_open-shkzg = 'H'.
    w_open-dmbtr = w_open-dmbtr * ( -1 ).
    opening = opening + w_open-dmbtr .
    ENDIF.
    CLEAR : w_open.
    ENDLOOP.
    SELECT
    bukrs shkzg dmbtr umskz
    FROM bsad
    INTO TABLE t_open
    WHERE bukrs IN s_bukrs
    AND kunnr IN s_kunnr
    AND gjahr IN s_gjahr
    AND budat <= opdate.
    LOOP AT t_open INTO w_open.
    IF w_open-shkzg = 'S'.
    opening = opening + w_open-dmbtr.
    ELSEIF w_open-shkzg = 'H'.
    w_open-dmbtr = w_open-dmbtr * ( -1 ).
    opening = opening + w_open-dmbtr.
    ENDIF.
    CLEAR w_open.
    ENDLOOP.
    ENDIF.
    ENDFORM.
    *&      Form  top2
    FORM top2 .
    date  = s_date-low.
    date1 = s_date-high.
    WRITE : / 'CUSTOMER LEDGER FOR ALL ITEMS' COLOR 7.
    WRITE : / 'Customer Code:', it_main_all-kunnr.
    WRITE : / 'Customer Name:', it_main_all-name.
    WRITE : / 'Customer City:', it_main_all-city.
    ON CHANGE OF it_main_all-bukrs.
    WRITE : / 'Company Code:' COLOR 3 , it_main_all-bukrs COLOR 3.
    PERFORM opening USING it_main_all-bukrs.
    PERFORM closing USING it_main_all-bukrs.
    WRITE : / 'Opening Balance : Rs.' , opening .
    WRITE : / 'Closing Balance : Rs.' , closing .
    ENDON.
    CLEAR : closing, opening.
    IF date1 IS INITIAL.
    WRITE : / 'Date:', date DD/MM/YYYY.
    ELSE.
    WRITE : / 'Date:' , date DD/MM/YYYY, ' to ', date1 DD/MM/YYYY.
    ENDIF.
    ENDFORM.
    *&Form  closing
    FORM closing USING c_bukrs TYPE bsid-bukrs.
    LOOP AT it_main_all WHERE bukrs = c_bukrs.
    closing = closing + it_main_all-dmbtr.
    ENDLOOP .
    closing = closing + opening .
    ENDFORM.
    Edited by: Vishu on Apr 20, 2009 9:32 AM

    it can be done with the help of a system code 'sy-xcode'. it is initialised the time list is sorted so just keeping a check point, we can solve this problem.
    Vishu Khandelwal

Maybe you are looking for

  • How to ... change the default for "patch name" when doing the assemlby?

    Hi all, how to change the default settings for the "patch name" in the assembly step? By default the name will be set to <trackID>.<timestamp> and I would like to have something else ... Best regards and thanks for any help Michael

  • How to use CASE or DECODE in this?

    Hi , I have a query like this AND ...smthng AND --smtg AND age BETWEEN ....For the last AND clause for age column, I have the values passed from IN param of this SP in form of strings '0-30', '31-60', '61-90', and '91+'. The IN param is of course VAR

  • How to use constructer for javafx class

    hi when i create an instance of javafx class i do like this : var instance = ClassName{ attribute1 : value1 attribute2 : value2 so i have to put all attributes as public ...wich is not respect the OOP rules !! how can i avoid this ? thx

  • Programati​cally stop and start computer process

    Is there a way to programatically start and stop computer processes/services using LabVIEW? Thanks, Taylor

  • Accessing A URL

    Hi, I do have a web application which is deployed on Oracle Application Server 10.1.3. When I access a file with Arabic Name, am receiving a response saying that file not found. I can see the path is correct and the file is under appropriate context.