Regarding selection of row?

Hi All,
I have a table in my view.
i want to select the entire row when i click anywhere on the table.
i am using 
event_element = wdevent->get_context_element( 'CONTEXT_ELEMENT' ) to get the particular row.but i am getting ' Access via 'NULL' object reference not possible'.
Could anyone pls give me the exact code ..how to proceed for this? where shall i write the code in select event handler or onleadselection event handler method?
Regards,
Lakshmi.

Hi,
DATA:lv_outputelement       TYPE REF TO     if_wd_view_element,
       lr_table               TYPE REF TO     cl_wd_table,
       lt_el_userenty         TYPE            wdr_context_element_set,
       lt_el_user             TYPE            wdr_context_element_set.
  DATA lo_nd_userenty         TYPE REF TO     if_wd_context_node.
  DATA lo_el_userenty         TYPE REF TO     if_wd_context_element.
  DATA ls_userenty            TYPE            wd_this->element_userenty.
  DATA lo_el_user             TYPE REF TO     if_wd_context_element.
  clear lt_el_user[].
  CASE iv_ui_element_name.
    WHEN 'TABLE'.
      navigate from <CONTEXT> to <USERENTY> via lead selection
      lo_nd_userenty = wd_context->get_child_node( name = wd_this->wdctx_userenty ).
      CALL METHOD lo_nd_userenty->get_elements
        RECEIVING
          set = lt_el_userenty.
      lt_el_user = lt_el_userenty.
  endcase.
  LOOP AT lt_el_user INTO lo_el_user.
    CALL METHOD lo_el_user->set_selected
      EXPORTING
        flag = abap_true.
  ENDLOOP.

Similar Messages

  • Regarding Selection of a row in Tree By Nesting UI Element

    Hi
    I have a table containing 2 columns mapped to a context node. Also a TreeByNestingUIElement is also there.
    I wished to implement OnLeadSelect() for the table. I mean when i select a row, the value of the first column of that row gets populated in another context attribute "selectedValue"
    It would be great if anyone tell me how to implement the code
    Regards
    Sreekar

    Sreekar,
    If you are using NW04 SP13+ version or NW04s, then add "nodeElement" parameter mapping for onLeadSelect action handler as described here:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/c092333b-0601-0010-e7af-8c227fb6d052
    /people/bertram.ganz/blog/2005/09/13/new-web-dynpro-sample-available--enhancing-table-performance
    Otherwise follow guidelines described in my blog:
    /people/valery.silaev/blog/2005/06/20/master-of-columns-part-ii
    Valery Silaev
    EPAM Systems
    http://www.NetWeaverTeam.com

  • Select  mutiple rows in ALV report output

    Hi All,
    I want to select the Multiple records i in ALV report output with out holding the CNTL(Control Key).
    Is there any options in Layout?
    Please let me know
    regards,
    Ajay
    Edited by: Ajay reddy on May 30, 2010 3:27 PM

    Hi Ajay,
    To select several rows without Control button, if the rows are adjacent:
    - select the first and the last of the desired rows with Shift button pressed
    or
    - select a row, keep the mouse button pressed, and pass over the desired rows
    I don't know an option without Control if the rows are not adjacent.
    http://help.sap.com/saphelp_bw/helpdata/en/d1/7d9d37664e4d45e10000009b38f8cf/content.htm
    Regards,
    Paulo Carvalho

  • How to select multiple row in ALV report

    Hi friends,
    1. How to select multiple row in ALV report
                   ( How to set tab in ALV report and want to select multiple line.)
    Thanking you.
    Subash

    Hi Sahoo,
    If you are using the class CL_GUI_ALV_GRID. In methods SET_TABLE_FOR_FIRST_DISPLAY.
    in layout structure you will find field SEL_MODE
    pass :
    LS_LAYOUT-SEL_MODE = 'A'.
    In PAI.
      CALL METHOD GRID->GET_SELECTED_ROWS
        IMPORTING
          ET_INDEX_ROWS = T_ROWS
          ET_ROW_NO     = T_ROWID.
    Hope these will solve your problem.
    Regards,
    Kumar M.

  • How to select perticular row in table control for BDC

    Hi all
    I want to select perticular row in table control for deletion through BDC. My transaction is CA02, My input is  material no and plant , then it display table control with work center. Now i want to select W999 cost center and delete through BDC.
    Please Suggest me. it urgent.
    Thanks& Regards,
    RP

    Hi all
    I want to select perticular row in table control for deletion through BDC. My transaction is CA02, My input is  material no and plant , then it display table control with work center. Now i want to select W999 cost center and delete through BDC.
    Please Suggest me. it urgent.
    Thanks& Regards,
    RP

  • Selecting multiple rows in a table

    Hi All,
    I have one problem with selecting multiple rows in a table.I tried with setting table property-selectionMode as Multi, but i dinn't get the solution.
    please provide me solution for this.
    Thanks & Regards,
    Sreelakshmi.

    HI
    Int leadSelection = wdcontext.nodemodelnode.getLeadSelection();
      for(int i=0;i<wdcontext.nodeModelNode.size;i++)
        if(wdcontext.nodeModelNode.isMultiselected(i) || leadSelection ==i)
               String name = wdcontext.nodemodelnode.getnameelementatindex(i).getName();
               String  address = wdcontext.nodemodelnode.getaddresselementatindex(i).getAddress();
               String age = wdcontext.nodemodelnode.getAgeelementatindex(i).getAge();
            Create a method for the Table Property onLeadSelect() where you can open a popup window
             Create a value node and with attributes same as Table attributes and then set the values of the table
             to the value node attributes.
    Thanks

  • Select multiple rows in a grid

    Hi All,
    I want to select multiple rows in a grid on click of a button, there is no checkbox there are multiple rows which need to be selected like we do on pressing shift key on the keyboard. Please suggest how can this be done.
    thanks in advance.
    Regards,
    Anju

    Hi Anju,
    You can check this link to solve your problem:
    https://wiki.sdn.sap.com/wiki/display/Snippets/ALV%2bGrid%2bDisplay%2bwith%2bcheckbox%2bto%2bprocess%2bselected%2brecords%2bat%2bruntime
    Hope it helps you.
    Thanks & Regards,
    Sarita Singh Rathour

  • Selection of rows in ALV grid (class CL_GRID_CATSXT)

    Hi all,
    The CATS transaction CATS_APPR_LITE is using the class CL_GRID_CATSXT, method GET_SELECTED_ROWS, to retrieve selected rows in the ALV report.
    The user/manager selects these rows to approve the work hours registered by his subordinates. He can only select and approve those rows that have been fully expanded, meaning he cannot select and approve total lines. (If he tries to do so, nothing happens).
    I have created a layout that shows only total lines per employee. Using this layout the manager should be able to select the total line for a particular employee and press the "Approve" button. In this way, I need to get a hold of the rows contained in the total line, meaning I need the row numbers of the actual rows which have been added up in the total line.
    Does anyone know how to do this...? As mentioned earlier, the CATS_APPR_LITE transaction is using class CL_GRID_CATSXT, method GET_SELECTED_ROWS.
    All helpful answers will be rewarded!
    Best regards,
    MV

    I guess method GET_SELECTED_ROWS returns the total lines when they are selected ?
    if so, you just have to do a LOOP on your internal table having same key fields as selected total line

  • Open system form and select a row number on matrix by click on button

    Hi experts,
    I have to open the purchase order form and select a specific row number from the matrix by clicking a button on sales order form.
    is it possible ?
    can anyone help me to achieve it?
    Thanks in advance.
    Best regards
    Andrea

    Andrea,
    To Do? Clicking on a Button on Sales Order -> Opens a PO form, and selects the row?
    In the eventhandler of a button click if the PO is not linked to SO by SAP B1 standard functionality
    step 1. call ActivateMenu ("2305") of Sbo_application , this opens the PO form
    step 2. Change the form to Find mode
    step 3. enter po number to the Item UID "8" which is the document number.
    step 4. Send enter key, or Clikc On button UID "1" which finds the PO
    step 5.read the value from SO form, from matrix "38" line where you selected
    step 6. use the code above to locate the line in PO (use # column for position numbers which UID is 0)
    at step 5, i think you should select a line from SO matrix which you would like to open.
    IN sales order, If you used PO chekcbox on logistics tab to create the PO, you can find a direct link between PO and SO (only in docentries are linked not positions) on sales order,  Column UID 158 field name: potrgnum.  If this connection is exists, you have an easy way:
    SO form, when a user clicks on COlumn 158 (po number), you can implement an eventhandler, which
    step 1.read the value from SO form, from matrix "38" line where you selected
    step 2. use the code above to locate the line in PO (use # column for position numbers which UID is 0)
    By processing theses steps, you can build up you solution.
    Regards
    János

  • Not able to select a row in ALV in Webdynpro

    Hi everyone,
    I have developed a webdynpro application and I have declared component usage for SALV_WD_TABLE.
    The data gets displayed in the ALV, but always the first row is selected.
    When I try to select another row,I am not able to select.
    Could anyone please suggest what might be the problem ?
    Thanks in advance.
    Regards,
    Kumudha.

    Hi Manas,
    Thanks for the inputs.
    I am placing the code below for your reference.
    I try to change the below as Display Text as Code...But it is not happening Plz check
    method wddoinit.
      if wd_this->ls_setup is initial.
        select single * from yyua_c_setup into wd_this->ls_setup
          where system_id = sy-sysid.
      endif.
      "adjustments for ALV
      data lo_cmp_usage type ref to if_wd_component_usage.
      lo_cmp_usage =   wd_this->wd_cpuse_alv( ).
      if lo_cmp_usage->has_active_component( ) is initial.
        lo_cmp_usage->create_component( ).
      endif.
      data: l_ref_interfacecontroller type ref to iwci_salv_wd_table .
      l_ref_interfacecontroller = wd_this->wd_cpifc_alv( ).
      data: l_value type ref to cl_salv_wd_config_table,
            lr_header_t type ref to cl_salv_wd_header,
            lv_text type string.
      l_value = l_ref_interfacecontroller->get_model( ).
      data: lr_column_settings type ref to if_salv_wd_column_settings,
            lr_input_field type ref to cl_salv_wd_uie_input_field,
            lr_column type ref to cl_salv_wd_column.
    Set column title and position
      lr_column = l_value->if_salv_wd_column_settings~get_column( 'CSINSTA' ).
      lr_column->set_position( 1 ).
    lv_text = cl_wd_utilities=>get_otr_text_by_alias( 'Z_REFERENCE/REQUEST_NUMBER' ).
      lr_column->r_header->set_text( 'Installation' ).
      lr_column->r_header->set_ddic_binding_field( '00' ).
      lr_column = l_value->if_salv_wd_column_settings~get_column( 'ERFUNAME' ).
         |
      lr_column->set_position( 18 ).
    lv_text = cl_wd_utilities=>get_otr_text_by_alias( 'Z_REFERENCE/ACTIVITY_DATE' ).
      lr_column->r_header->set_text( 'Job profile ext' ).
      lr_column->r_header->set_ddic_binding_field( '00' ).
    Hide columns
      lr_column = l_value->if_salv_wd_column_settings~get_column( 'ERFTSTMP' ).
      lr_column->set_visible( 0 ).
      lr_column = l_value->if_salv_wd_column_settings~get_column( 'AETSTMP' ).
      lr_column->set_visible( 0 ).
      lr_column = l_value->if_salv_wd_column_settings~get_column( 'STATUS' ).
      lr_column->set_visible( 0 ).
      lr_column = l_value->if_salv_wd_column_settings~get_column( 'PRIO' ).
      lr_column->set_visible( 0 ).
      lr_column = l_value->if_salv_wd_column_settings~get_column( 'ISSUE' ).
      lr_column->set_visible( 0 ).
      data: lr_functions type ref to if_salv_wd_function_settings,
            lr_function type ref to cl_salv_wd_function,
            lr_button_t type ref to cl_salv_wd_fe_button.
    Add self-defined functions in toolbar
      lr_functions ?= l_value.
      lr_function = lr_functions->create_function( 'SELECT' ).
      create object lr_button_t.
    lv_text = cl_wd_utilities=>get_otr_text_by_alias( 'Z_REFERENCE/VIEW' ).
      lr_button_t->set_text( 'Select' ).
      lr_function->set_editor( lr_button_t ).
    data : LR_FUNCTION_SETTINGS TYPE REF TO CL_SALV_WD_CONFIG_TABLE.
    create object LR_FUNCTION_SETTINGS.
    SET row selectable as true
    CALL METHOD LR_FUNCTION_SETTINGS->IF_SALV_WD_TABLE_SETTINGS~SET_ROW_SELECTABLE
    EXPORTING
    VALUE = ABAP_TRUE.
    endmethod
    Regards,
    Kumudha.

  • Not able to select a row in ALV?

    Hi Experts,
    I am enhancing a standard e-recruiting WD ABAP component.
    It produces a search result as ALV.
    I am not able to select any row in ALV by clicking it like we normally do in ALV.
    I wrote below code to allow selection:
    lo_value->if_wd_salv_table_settings~set_selection_mode( cl_wd_table=>e_selection_mode-single).
    Even after this I am not able to select any row by clicking it.
    Need help to solve this.
    Regards,
    Sumit Oberoi

    Hi,
    To have the inputfields for the ALV.
    Get the column references of the ALV table and for each column rference create a inputfield object
    type CL_SALV_WD_UIE_INPUT_FIELD.
    lo_value is model object.
      CALL METHOD lo_value->if_salv_wd_column_settings~get_columns
        RECEIVING
          value = wd_this->lit_columns.
    LOOP AT wd_this->lit_columns INTO wd_this->lis_columns.
          lv_id = wd_this->lis_columns-id.
          wd_this->gref_column = wd_this->lis_columns-r_column.
    case lv_id.
    when ' colname'.
                CREATE OBJECT lr_input
                  EXPORTING
                    value_fieldname = lv_id.
                CALL METHOD wd_this->gref_column->set_cell_editor
                  EXPORTING
                    value = lr_input.
    when ' colname'.
                CREATE OBJECT lr_input
                  EXPORTING
                    value_fieldname = lv_id.
                CALL METHOD wd_this->gref_column->set_cell_editor
                  EXPORTING
                    value = lr_input.
    endcase.
    endloop.
    Or you can take a attribute READ_ONLY for the node to which ALV table is bound.
    Set the readonly property to abap_false (for input field) by looping through the table.
    Get the column references and get the textview reference for each column and use the set_read_only
    method by passing the attribute name.
    This way the textview will now become the inputfield when the read_only property is set to abap_false.
    Regards,
    Lekha.

  • Selecting a row in the output of alv grid

    hi,
    how do i select a row in the output of alv grid?plz help...
    regards,
    sheeba.

    Hi,
    Please refer the code below:
    *& Report  ZDEMO_ALVGRID_SELROW                                        *
    *& Example of a simple ALV Grid Report                                 *
    *& The basic ALV grid, Enhanced to display capture each row a user has *
    *& selected                                                            *
    REPORT  zdemo_alvgrid_selrow                 .
    TABLES:     ekko.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      SEl,                         "stores which row user has selected
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    *ALV data declarations
    data: fieldcatalog type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
    *       Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    * There are a number of ways to create a fieldcat.
    * For the purpose of this example i will build the fieldcatalog manualy
    * by populating the internal table fields individually and then
    * appending the rows. This method can be the most time consuming but can
    * also allow you  more control of the final product.
    * Beware though, you need to ensure that all fields required are
    * populated. When using some of functionality available via ALV, such as
    * total. You may need to provide more information than if you were
    * simply displaying the result
    *               I.e. Field type may be required in-order for
    *                    the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    *  fieldcatalog-do_sum      = 'X'.
    *  fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.        "Display column total
      fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    *       Build layout for ALV grid report
    form build_layout.
      gd_layout-box_fieldname     = 'SEL'.
                                     "set field name to store row selection
      gd_layout-edit              = 'X'. "makes whole ALV table editable
      gd_layout-zebra             = 'X'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
    *       Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
    *            i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
    *            i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
    *            it_special_groups       = gd_tabgroup
    *            IT_EVENTS                = GT_XEVENTS
                i_save                  = 'X'
    *            is_variant              = z_template
           tables
                t_outtab                = it_ekko
           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.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
    *       Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp statu aedat matnr menge meins netpr peinh
    up to 10 rows
      from ekpo
      into corresponding fields of table it_ekko.
    endform.                    " DATA_RETRIEVAL
    *       FORM USER_COMMAND                                          *
    *       --> R_UCOMM                                                *
    *       --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    * Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
    *   Check field clicked on within ALVgrid report
        IF rs_selfield-fieldname = 'EBELN'.
    *     Read data table, using index of row user clicked on
          READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
    *     Set parameter ID for transaction screen field
          SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
    *     Sxecute transaction ME23N, and skip initial data entry screen
          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        ENDIF.
        WHEN '&DATA_SAVE'.  "user presses SAVE
        loop at it_ekko into wa_ekko.
          if wa_ekko-sel EQ 'X'.
    *       Process records that have been selected
          endif.
        endloop.
      ENDCASE.
    ENDFORM.
    Thanks,
    Sriram Ponna.

  • Selecting all rows in ALV on a button click

    Hi Experts
    Hi,
    I have a dynamic ALV table. I also have a button 'Select All Rows'. On clicking the button I want all the rows in the ALV table selected which is done by using set_selected method at the context node.
    All the rows in the alv is selected after clicking select_all except for the first row.
    Need your inpts to solve the same.
    Regards
    Karthick

    Use the folowing code
    *... get model
      data:
        lr_model type ref to cl_salv_wd_config_table.
      lr_model ?= me->r_model.
    *... get columns
      data:
        ls_column type salv_wd_s_column_ref,
        lt_column type salv_wd_t_column_ref.
      lt_column = lr_model->if_salv_wd_column_settings~get_columns( ).
      data:
        l_selected type abap_bool.
      loop at lt_column into ls_column.
        l_selected = abap_false.
        read table value transporting no fields with key column = ls_column-id.
        if sy-subrc eq 0.
          l_selected = abap_true.
        endif.
        try.
            me->if_salv_bs_model_column~set_selected(
              column = ls_column-id
              value = l_selected ).
          catch cx_salv_bs_sc_object_not_found.             "#EC NO_HANDLER
        endtry.
      endloop.

  • Select All rows  in WebDybpro Tables

    Hi All ,
    I am working on NWCE 7.1 . i have table in my UI. and want to give slect all rows functionality in table. in NWCE is there
    any way to give select all rows in table with out using , button and writing action to iterate node bound to table.
    also i want to know about RowCreator ui element for table.(when we right click on table we get insert -> rowcreator). How this works
    Thanks in advance
    Regards
    Kavita

    Hi Kavita,
    The row creator Ui element is not visible in table itself you can see it only in outline window.
    and in its on create event you have to write the code which i have provided above. it will not be visible in table at design time but at run time when you will click on the last rows lead selection it will call the associated event and one row will be added to the table.
    Regards
    Jeetendra

  • How to select a row from duplicate set of records?

    I want to select a row from a duplicate set of records.
    below is the explanation of my requirement.
    select * from test_dup;
    COL_BILL     COL_SERV     COL_SYS
    b1     s1     c
    b1     s1     g
    b1     s2     c
    b1     s2     g
    b2     s2     g
    b2     s3     c
    b2     s3     g
    b3     s3     c
    Here what I want is, for a distinct col_sys if col_bill and col_serv is same then I need the row where col_sys='c'
    from the above result set I need the following:
    b1     s1     c
    b1     s2     c
    b2     s3     c
    I am using the following SQL query which is giving me the correct result set. But it will hamper the performance because there are total 45 columns in the table and total volume is around 50 million.
    select * from test_dup where col_bill||col_serv in (
    select col_bill||col_serv from (
    select col_bill,col_serv,count(*) from test_dup
    where col_sys in ('c','g')
    group by col_bill,col_serv having count(*) >1)) and
    col_sys='c';
    Can anyone please provide me the optimize SQL query for the same.

    Hi,
    Another way,
    SQL> with test_dup
    as
         select 'b1' col_bill, 's1' col_serv, 'c' col_sys from dual union all
         select 'b1', 's1', 'g' from dual union all
         select 'b1', 's2', 'c' from dual union all
         select 'b1', 's2', 'g' from dual union all
         select 'b2', 's2', 'g' from dual union all
         select 'b2', 's3', 'c' from dual union all
         select 'b2', 's3', 'g' from dual union all
         select 'b3', 's3', 'c' from dual
      select col_bill, col_serv, min(col_sys) col_sys
        from test_dup
       where col_sys in ('c', 'g')
    group by col_bill, col_serv
      having count( * ) > 1
         and count(nullif(col_sys, 'g')) > 0;
    CO CO C
    b1 s1 c
    b2 s3 c
    b1 s2 c
    3 rows selected.Regards
    Peter
    Edited by: Peter on Feb 18, 2009 1:10 AM
    - Added test data, thanks Karthick

Maybe you are looking for