Edit data in single row

I'm busy re-oredering data.
I have the follwing problem:
I've a column with data that must become unique, but there are values that occur more than once. I've to append 0, 1,2, etc to these values in order to make the values unique.
eg.
[b]Current situation
aplha
alpha
alpha
Desired
alpha1
alpha2
alpha3
how can I realize this in PL/SQL? tnx in advance.

Similar:
SQL> INSERT INTO emp
   SELECT 9999 empno,
          ename,
          job,
          mgr,
          hiredate,
          sal,
          comm,
          40 deptno
     FROM emp
    WHERE empno = 7788
1 row created.
SQL> SELECT deptno,
       deptno || DECODE (cnt, 1, NULL, rn) new_deptno
  FROM (SELECT deptno,
               ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY deptno) rn,
               COUNT (*) OVER (PARTITION BY deptno) cnt
          FROM emp)
    DEPTNO NEW_D
        10 101 
        10 102 
        10 103 
        20 201 
        20 202 
        20 203 
        20 204 
        20 205 
        30 301 
        30 302 
        30 303 
        30 304 
        30 305 
        30 306 
        40 40  
15 rows selected.

Similar Messages

  • Display data in single row

    i have table dept of deptno d001,d002,d003,d004
    i want to list the data like below
    deptno
    d001,d002,d003,d004 ( in a single row)
    is it possible..?
    S

    Based on your database version you can try any one of the following http://www.oracle-base.com/articles/misc/StringAggregationTechniques.php

  • Data in single row

    thanks
    Edited by: 786304 on May 25, 2011 12:22 PM

    BluShadow .
    I agree your opinion.
    I resurrect it from google cache.
    Hi All,
    I have two queries as follows
    Select
    Xrc.Profile_Nbr Var_Profile_Nbr,
    xsr.Profile_Nbr Var_Profile_Nbr,
    Nvl(Ppa.First_Name,' ') Var_First_Name,
    Nvl(Ppa.Last_Name,' ') Var_Last_Nmae,
    Nvl(Ppa.Last_Name2,' ') Var_Last_Name2,
    Nvl(Ppa.Middle_Name,' ') Var_Middle_Name,
    Nvl(Pfl.Display_Name,' ') Var_Display_Name,
    Nvl(Addr.Street1,' ') Var_Street1,
    Nvl(Addr.Street2,' ') Var_Street2,
    Nvl(Addr.City,' ') Var_City ,
    Nvl(Addr.State_Name,' ') Var_State_Name,
    Addr.Post_Code Var_Post_Code,
    Nvl(Cnt.Cntry_Name,' ') Var_Country,
    Phn.Phone Var_Phone_Nbr,
    Nvl(To_Char(Ppa.Birthdate,'MON/DD/YYYY'),' ') Var_Birthdate,
    Nvl(Ppa.Occupation,' ') Var_Occupation,
    Nvl(Ppa.Country_Of_Nationality,1) Var_Country_Of_Nationality,
    Nvl(Ppa2.First_Name,' ') Var_First_Name,
    Nvl(Ppa2.Last_Name,' ') Var_Last_Nmae,
    Nvl(Ppa2.Last_Name2,' ') Var_Last_Name2,
    Nvl(Ppa2.Middle_Name,' ') Var_Middle_Name,
    Nvl(Pfl2.Display_Name,' ') Var_Display_Name,
    Nvl(Addr2.Street1,' ') Var_Street1,
    Nvl(Addr2.Street2,' ') Var_Street2,
    Nvl(Addr2.City,' ') Var_City ,
    Nvl(Addr2.State_Name,' ') Var_State_Name,
    Addr2.Post_Code Var_Post_Code,
    Nvl(Cnt2.Cntry_Name,' ') Var_Country,
    Phn2.Phone Var_Phone_Nbr,
    Nvl(To_Char(Ppa2.Birthdate,'MON/DD/YYYY'),' ') Var_Birthdate,
    Nvl(Ppa2.Occupation,' ') Var_Occupation,
    Nvl(ppa2.COUNTRY_OF_NATIONALITY,1) var_COUNTRY_OF_NATIONALITY
    From
    V_Xact_Receiver Xrc, V_Person_Profile Ppa, V_Profile Pfl,V_Phone Phn,V_Address Addr,V_Country_Lu Cnt
    ,V_Xact_sender xsr, V_Person_Profile Ppa2, V_Profile Pfl2,V_Phone Phn2,V_Address Addr2,V_Country_Lu Cnt2
    Where Xrc.Xact_Hdr_Nbr=71138142
    and xsr.Xact_Hdr_Nbr=71138142
    And xrc.Profile_Nbr=Ppa.Profile_Nbr
    And Ppa.Profile_Nbr=Pfl.Profile_Nbr
    And Pfl.Profile_Nbr=Phn.Profile_Nbr
    And Pfl.Profile_Nbr=Addr.Profile_Nbr
    And Phn.Country_Nbr=Cnt.Country_Nbr
    And Xsr.Profile_Nbr=Ppa2.Profile_Nbr
    And Ppa2.Profile_Nbr=Pfl2.Profile_Nbr
    And Pfl2.Profile_Nbr=Phn2.Profile_Nbr
    And Pfl2.Profile_Nbr=Addr2.Profile_Nbr
    And Phn2.Country_Nbr=Cnt2.Country_Nbr;
    and
    SELECT
    Nvl(Dlu.Id_Type_Desc,' ') Var_Ident_Type_Desc,
    Nvl(D.Id_Number,' ') Var_Id_Number,
    Nvl(To_Char(D.Id_Issue_Date,'MON/DD/YYYY'),' ') Dte_Id_Issue,
    Nvl(To_Char(D.Id_Expiration_Date,'MON/DD/YYYY'),' ') Dte_Id_Expiration,
    Nvl(To_Char(Id_Expiration_Date,'MON/DD/YYYY'),' ') Dte_Id_Expiration,
    Nvl(D.Id_Issue_Place,' ') Var_Issue_Loc,
    Nvl(Pfl.Occupation,' ') Var_Occupation,
    Nvl(To_Char(Pfl.Birthdate,'MON/DD/YYYY'),' ') Dte_Birth,
    Nvl(To_Char(Pfl.Country_Of_Nationality,'MON/DD/YYYY'),' ') Var_Country_Of_Nationality
    FROM V_PROFILE_IDENT D,
    V_ID_TYPE_LU DLU,
    V_Country_Lu Clu,
    V_Xact_sender Xsr,
    v_person_profile pfl
    Where Xsr.Xact_Hdr_Nbr='71138142'
    And D.Profile_Nbr = Xsr.Profile_Nbr
    and D.Profile_Nbr=pfl.Profile_Nbr
    And D.Id_Type_Nbr = Dlu.Id_Type_Nbr
    And D.Country_Nbr = Clu.Country_Nbr(+)
    And D.Is_Valid = 'Y'
    and rownum<=3;
    The first query it returns the result in a single row
    The second query it returns the output in 3 rows
    while i was club these two it gives the result in 3 rows
    but have to get the result in a single row with all appropriate values side by side if the values are same get the values one only
    and the query club as
    Select
    Xrc.Profile_Nbr Var_Profile_Nbr,
    xsr.Profile_Nbr Var_Profile_Nbr,
    Nvl(Ppa.First_Name,' ') Var_First_Name,
    Nvl(Ppa.Last_Name,' ') Var_Last_Nmae,
    Nvl(Ppa.Last_Name2,' ') Var_Last_Name2,
    Nvl(Ppa.Middle_Name,' ') Var_Middle_Name,
    Nvl(Pfl.Display_Name,' ') Var_Display_Name,
    Nvl(Addr.Street1,' ') Var_Street1,
    Nvl(Addr.Street2,' ') Var_Street2,
    Nvl(Addr.City,' ') Var_City ,
    Nvl(Addr.State_Name,' ') Var_State_Name,
    Addr.Post_Code Var_Post_Code,
    Nvl(Cnt.Cntry_Name,' ') Var_Country,
    Phn.Phone Var_Phone_Nbr,
    Nvl(To_Char(Ppa.Birthdate,'MON/DD/YYYY'),' ') Var_Birthdate,
    Nvl(Ppa.Occupation,' ') Var_Occupation,
    Nvl(Ppa.Country_Of_Nationality,1) Var_Country_Of_Nationality,
    Nvl(Ppa2.First_Name,' ') Var_First_Name,
    Nvl(Ppa2.Last_Name,' ') Var_Last_Nmae,
    Nvl(Ppa2.Last_Name2,' ') Var_Last_Name2,
    Nvl(Ppa2.Middle_Name,' ') Var_Middle_Name,
    Nvl(Pfl2.Display_Name,' ') Var_Display_Name,
    Nvl(Addr2.Street1,' ') Var_Street1,
    Nvl(Addr2.Street2,' ') Var_Street2,
    Nvl(Addr2.City,' ') Var_City ,
    Nvl(Addr2.State_Name,' ') Var_State_Name,
    Addr2.Post_Code Var_Post_Code,
    Nvl(Cnt2.Cntry_Name,' ') Var_Country,
    Phn2.Phone Var_Phone_Nbr,
    Nvl(To_Char(Ppa2.Birthdate,'MON/DD/YYYY'),' ') Var_Birthdate,
    Nvl(Ppa2.Occupation,' ') Var_Occupation,
    Nvl(Ppa2.Country_Of_Nationality,1) Var_Country_Of_Nationality,
    Nvl(Dlu.Id_Type_Desc,' ') Var_Ident_Type_Desc,
    Nvl(D.Id_Number,' ') Var_Id_Number,
    Nvl(To_Char(D.Id_Issue_Date,'MON/DD/YYYY'),' ') Dte_Id_Issue,
    Nvl(To_Char(D.Id_Expiration_Date,'MON/DD/YYYY'),' ') Dte_Id_Expiration,
    Nvl(To_Char(Id_Expiration_Date,'MON/DD/YYYY'),' ') Dte_Id_Expiration,
    Nvl(D.Id_Issue_Place,' ') Var_Issue_Loc,
    Nvl(Pfl3.Occupation,' ') Var_Occupation,
    Nvl(To_Char(Pfl3.Birthdate,'MON/DD/YYYY'),' ') Dte_Birth,
    Nvl(To_Char(Pfl3.Country_Of_Nationality,'MON/DD/YYYY'),' ') Var_Country_Of_Nationality
    From
    V_Xact_Receiver Xrc, V_Person_Profile Ppa, V_Profile Pfl,V_Phone Phn,V_Address Addr,V_Country_Lu Cnt
    ,V_Xact_sender xsr, V_Person_Profile Ppa2, V_Profile Pfl2,V_Phone Phn2,V_Address Addr2,V_Country_Lu Cnt2
    V_Profile_Ident D,
    V_Id_Type_Lu Dlu,
    V_Country_Lu Clu,
    V_Xact_receiver Xrc2,
    v_person_profile pfl3
    Where Xrc.Xact_Hdr_Nbr=71138142
    And Xsr.Xact_Hdr_Nbr=71138142
    and xrc2.Xact_Hdr_Nbr=71138142
    And xrc.Profile_Nbr=Ppa.Profile_Nbr
    And Ppa.Profile_Nbr=Pfl.Profile_Nbr
    And Pfl.Profile_Nbr=Phn.Profile_Nbr
    And Pfl.Profile_Nbr=Addr.Profile_Nbr
    And Phn.Country_Nbr=Cnt.Country_Nbr
    And Xsr.Profile_Nbr=Ppa2.Profile_Nbr
    And Ppa2.Profile_Nbr=Pfl2.Profile_Nbr
    And Pfl2.Profile_Nbr=Phn2.Profile_Nbr
    And Pfl2.Profile_Nbr=Addr2.Profile_Nbr
    And Phn2.Country_Nbr=Cnt2.Country_Nbr
    And D.Profile_Nbr = Xrc2.Profile_Nbr
    and D.Profile_Nbr=pfl3.Profile_Nbr
    And D.Id_Type_Nbr = Dlu.Id_Type_Nbr
    And D.Country_Nbr = Clu.Country_Nbr(+)
    And D.Is_Valid = 'Y'
    and rownum<=3;
    regards,

  • Alternative way to fetch the data into single row.

    we have a query
    SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='XXX';
    This query will return the data in multiple rows.
    May know the alternative way to retrieve all the multiple rows in **single row with each row as a seperate column**.

    Why specifically an array - and do you want the SQL projection as an array, or collect the SQL projection into an array?
    E.g.
    SQL> create or replace type TStrings is table of varchar2(4000);
      2  /
    Type created.
    SQL> --// SQL projection casted into an array
    SQL> select
      2          cast(
      3                  MultiSet(
      4                          select column_name from all_tab_columns where table_name = 'KU$_DATAPUMP_MASTER_11_2' and owner = 'SYS'
      5                  )
      6                  as TStrings
      7          )                       as COLUMN_ARRAY
      8  from       dual
      9  /
    COLUMN_ARRAY
    TSTRINGS('REMOTE_LINK', 'VERSION', 'JOB_VERSION', 'DB_VERSION', 'TIMEZONE', 'STATE', 'PHASE', 'GUID', 'START_TIME', 'BLOCK_SIZE', 'METADATA_BUFFER_SIZE', 'DATA_BUFFER_SIZE', 'DEGREE', 'PLATFORM', 'ABO
    RT_STEP', 'INSTANCE', 'CLUSTER_OK', 'SERVICE_NAME', 'OBJECT_INT_OID', 'PROCESS_ORDER', 'DUPLICATE', 'DUMP_FILEID', 'DUMP_POSITION', 'DUMP_LENGTH', 'DUMP_ORIG_LENGTH', 'DUMP_ALLOCATION', 'COMPLETED_ROW
    S', 'ERROR_COUNT', 'ELAPSED_TIME', 'OBJECT_TYPE_PATH', 'OBJECT_PATH_SEQNO', 'OBJECT_TYPE', 'IN_PROGRESS', 'OBJECT_NAME', 'OBJECT_LONG_NAME', 'OBJECT_SCHEMA', 'ORIGINAL_OBJECT_SCHEMA', 'ORIGINAL_OBJECT
    _NAME', 'PARTITION_NAME', 'SUBPARTITION_NAME', 'DATAOBJ_NUM', 'FLAGS', 'PROPERTY', 'TRIGFLAG', 'CREATION_LEVEL', 'COMPLETION_TIME', 'OBJECT_TABLESPACE', 'SIZE_ESTIMATE', 'OBJECT_ROW', 'PROCESSING_STAT
    E', 'PROCESSING_STATUS', 'BASE_PROCESS_ORDER', 'BASE_OBJECT_TYPE', 'BASE_OBJECT_NAME', 'BASE_OBJECT_SCHEMA', 'ANCESTOR_PROCESS_ORDER', 'DOMAIN_PROCESS_ORDER', 'PARALLELIZATION', 'UNLOAD_METHOD', 'LOAD
    _METHOD', 'GRANULES', 'SCN', 'GRANTOR', 'XML_CLOB', 'PARENT_PROCESS_ORDER', 'NAME', 'VALUE_T', 'VALUE_N', 'IS_DEFAULT', 'FILE_TYPE', 'USER_DIRECTORY', 'USER_FILE_NAME', 'FILE_NAME', 'EXTEND_SIZE', 'FI
    LE_MAX_SIZE', 'PROCESS_NAME', 'LAST_UPDATE', 'WORK_ITEM', 'OBJECT_NUMBER', 'COMPLETED_BYTES', 'TOTAL_BYTES', 'METADATA_IO', 'DATA_IO', 'CUMULATIVE_TIME', 'PACKET_NUMBER', 'INSTANCE_ID', 'OLD_VALUE', '
    SEED', 'LAST_FILE', 'USER_NAME', 'OPERATION', 'JOB_MODE', 'QUEUE_TABNUM', 'CONTROL_QUEUE', 'STATUS_QUEUE')
    SQL> --// collecting the SQL projection as an array
    SQL> declare
      2          colArray        TStrings;
      3  begin
      4          select
      5                  column_name bulk collect into colArray
      6          from    all_tab_columns
      7          where   table_name = 'KU$_DATAPUMP_MASTER_11_2'
      8          and     owner = 'SYS';
      9 
    10          --// process array
    11  end;
    12  /
    PL/SQL procedure successfully completed.
    SQL>

  • Converting multi-row data to single row

    My source table has one or more records with the same id. My destination table only has one record for each id. I wish to combine the records from my source table to my destination table. I think the following query will show what I'm trying to do:
    update TARGET_TABLE
    set (A)
    =
    (select (case
    when sum(A*FUEL_TYPE_ID) > 2 then 4
    else sum(A*FUEL_TYPE_ID)
    end)
    from SOURCE_TABLE
    group by additive_id)
    where additive_id = NEW_TABLE.additive_idSince I'm currently limited to Apex SQL Commands, the error information is minimalist:
    ORA-01427: single-row subquery returns more than one row
    How should I be doing this?

    Hi tharpa,
    Are u able to relate to this.
    create table emp2 as select * from emp;
      update emp2
      set sal=(
                  select sum(sal)
                   from emp
                   group by deptno)
    where   empno=7839
    -------correct one would be-------
       update emp2 e2
       set sal=(
                 select sum(sal)
                  from emp e1
                  where e1.deptno=e2.deptno
                  group by deptno)
        where   empno=7839
         Hope it helps
    CKLP
    Edited by: CKLP on Apr 11, 2011 5:17 AM

  • How to get multiple row data in single row for one value of foreign key

    i want to get data from a table in a way that all the emp_id corresponding to one manager_id
    in employee table come in one row. (emp_id is the primary key and manager_id is the foreign key) Since there are different emp_id whose manager_id is same
    so how can i get all the emp_id in one row .

    One way with 10g:
    select mgr,
           rtrim(xmlagg(xmlelement(empno,empno||',').extract('//text()')),',')  emps
    from emp
    where mgr is not null
    group by mgr;10g:
    -- define this function:
    create or replace
    function concatenate(c Sys_refcursor, sep varchar2 default null) return varchar2
    as
      val varchar2(100);
      return_value varchar2(4000);
    begin
    --  open c;
      loop
      fetch c into val;
      exit when c%notfound;
      if return_value is null then
        return_value:=val;
      else
        return_value:=return_value||sep||val;
      end if;
      end loop;
      return return_value;
    end;
    select mgr,
           concatenate(cursor(select empno from emp e where e.mgr=emp.mgr order by empno),',')
    from emp
    where mgr is not null
    group by mgr;With 11g:
    select mgr,
           listagg(empno,',') within group (order by empno) emps
    from emp
    where mgr is not null
    group by mgr;

  • How to manipulate data in multiple rows without using cursor??

    Hi all,
    I have a form in which there is a push button & 4 text fields.
    Push button : Process
    Text fields: Year, Month, Financial_To_Year, Financial_From_Date.
    In database , there are tables like, CUSTOMER_MASTER, FD_ACCOUNT_MASTER, FD_ACCOUNT_DTL, CUSTOMER_YEARLY_INTEREST, etc.
    In table FD_ACCOUNT_MASTER, there are columns, like CUST_CODE, FD_ACCT_NO, FD_AMOUNT, ACCT_OPEN_DT, ACCT_CLOSE_DATE, ACCT_TYPE, INTEREST_RATE, etc.
    There are thousands of records in the table.
    For Push button : Process , TRIGGER: When button pressed,
    I have to do all the process of FD for all the FD_ACCOUNTS at once. Process means i have to calculate Interest for all the accounts, calculate interest monthly, quarterly, yearly and make the FD_Accounts disable after the date of ACCT_CLOSE_DATE is reached, make the accounts renewed , etc all the process.
    But to do this process for multiple rows at once, we use cursor, but i don't want to use cursor as i feel its too tedious to do.
    Is there any other way , where i do process of multiple records at once without using cursor??
    Help me, Thank You.
    Oracle Forms Builder 6i.
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

    An Update statement certainly can update sets of data instead single row updates:
    UPDATE Statement
    if you can't do it in a single statement you can use bulk processing as well:
    PLSQL 101
    cheers

  • How to update single row of ms access database

    Hi All,
    can somebody tell me how can i edit/update a single row of ms access database?
    let say i want to edit the first row of the figure in the left. What i want is when i click in the row, it will pop up a window where i can edit the fields content. or may be is it possible to add a column with "edit" text which link to the appropriate row. so when i click the "edit" it will open the edit window.
    Thank you

    If you use a multi-column listbox indicator there is a "double-click" event that you can capture with an event structure. The event, when fired, returns the row that the user double-clicked. Use that parameter to fetch/modify the data as needed. Remember that to update the data in the database the table containing the data must have a primary key - or at lease something you can use to uniquely identify the rows.
    Remember that in a database, there is no such thing as "the first row"; you have to explicitly identify which row you wish to modify.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Combining Multiple Rows into single row with multple columns

    Hi Experts,
    I have the following requirement, kindly help me.
    I have data in my table like below.
    ID NAME DEPT
    1 Sam 10
    1 Sam 20
    2 alex     30
    2 alex 40
    2 alex 50
    3 vinod 60
    3 vinod 70
    I want to show the same data into single row with dynamically generating columns for DEPT. I want show like below.
    ID NAME DEPT1 DEPT2 DEPT3
    1 Sam 10 20
    2 alex 30 40 50
    3 vinod 60 70
    It's urgent requirement, kindly help me.
    Thanks in advance.

    Right I've had my drink, so what was this "urgent" question then?
    798616 wrote:
    I have data in my table like below.
    ID NAME DEPT
    1 Sam 10
    1 Sam 20
    2 alex     30
    2 alex 40
    2 alex 50
    3 vinod 60
    3 vinod 70
    I want to show the same data into single row with dynamically generating columns for DEPT. I want show like below.Dynamic numbers of columns eh! Tricky.
    If you understand how SQL statements are executed it's along these lines...
    1. Open Cursor
    2. Parse SQL statement and determine columns
    3. Bind in any input values
    4. Fetch data
    5. Bind out values to columns
    6. Repeat step 3 until no more data
    7. Close cursor
    Now, you're expecting that you can determine the columns (step 2) from the fetched data (step 4 onwards). You can't. The SQL engine needs to know the expected columns before any data is fetched so, it can't base the number of columns on the data itself.
    If you need that requirement, you would need to query the data first and build up a dynamic query based on the data and then execute that dynamically built query to fetch the data and pivot it into those columns, which means that you have queried the data twice. Not good practice and not good (or simple) coding.
    What you're talking of doing is something that should be handled at the presentation/interface layer, not as part of the data fetch.
    Typically these sorts of things are handled most easily in report generation/writer tools such as Oracle Reports, Business Objects etc. where they fetch the data from the database and then process it to format it on the display, pivoting the results as required.
    It's not something that lends itself to be easily achieved in SQL. Yes, SQL can do pivoting of data quite easily, but NOT with a dynamic number of columns.
    If you were to specify that there is a maximum number of columns that you could get (rather than wanting it dynamic), then you can do it simply in SQL with the max-decode method...
    SQL> ed
    Wrote file afiedt.buf
      1  with t as (select deptno, ename, row_number() over (partition by deptno order by ename) as rn from emp)
      2  --
      3  select deptno
      4        ,max(decode(rn,1,ename)) as ename1
      5        ,max(decode(rn,2,ename)) as ename2
      6        ,max(decode(rn,3,ename)) as ename3
      7        ,max(decode(rn,4,ename)) as ename4
      8        ,max(decode(rn,5,ename)) as ename5
      9        ,max(decode(rn,6,ename)) as ename6
    10        ,max(decode(rn,7,ename)) as ename7
    11        ,max(decode(rn,8,ename)) as ename8
    12        ,max(decode(rn,9,ename)) as ename9
    13        ,max(decode(rn,10,ename)) as ename10
    14  from t
    15  group by deptno
    16* order by deptno
    SQL> /
        DEPTNO ENAME1     ENAME2     ENAME3     ENAME4     ENAME5     ENAME6     ENAME7     ENAME8     ENAME9     ENAME10
            10 CLARK      KING       MILLER
            20 ADAMS      FORD       JONES      SCOTT      SMITH
            30 ALLEN      BLAKE      JAMES      MARTIN     TURNER     WARD
    SQL>

  • Multiple pages that edit a single row

    I have searched on tabs and editing a single row using multiple pages and I am confused. I don't want to use java as I am trying to not learn that too...
    What I am trying to do sounds like it has been explained before but let me do this again...
    I have a record that is too large to fit on a single screen. This makes for a cumbersome entry process. The record is actually broken into four "logical" chunks. Main, Sub1, Sub2 and Sub3.
    I have made a list that will allow the record to be selected and call the first logical page... L1.
    I have made tabs that show all the pages and allow me to navigate between them quickly.
    When I get to L1 all the data is there. I may not change any data on that page and go directly to L2 through L4. However the record is not brought forward onto those pages. So the pages are not related (and I don't have the terminology right I know :) and I could "link" the pages. So here is what I would like the application to do;
    1. Display a list and allow the user to select the record to edit.
    2. Upon edit go to the first page (tab).. this works
    3. Allow the user to select a tab and the page displays the data for the record selected
    4. Allow the user to complete the edits and save the record. Upon save the user is returned to the list in step 1.
    I was thinking there are several ways to do it... but I was hoping someone could save me a bunch of trial and error (emphasis on the error) ...
    1. When navigating off the page save the record, pass the key and re-read the record... ugly huh?
    2. Pass all the session data for the record over to the next screen. Is that possible? e.g pxx_field1 = pyy_field1
    The the question was does a template with two level tabs keep the record data between tabs?
    Any help is greatly appreciated.
    Sam

    I think this works... kinda
    1. I have a "list" that allows the selection of the item to edit.
    2. That list opens a page that is the "header" page for a tab set.
    3. Each page in the tab set uses the same "ID" to read the record and display the columns. That is how it would work if the list called each individual page.
    4. I modified the "slave" tabs to have the "ID" of the "header" page.
    This displays the correct data on each page. And it looks like the "apply changes" button saves the changes on the page.
    Caveats inlclude (I think as I haven't done exhaustive testing"
    1. "apply changes" must be done at each page where there were changes or they would be lost.
    2. The first dispaly of the page is blank. Clicking on the tab a second time displays the data. This is true if it is the first time a user selects a record in a session (the "slave" tabs are blank) or if it is a subsequent record update (the "slave" tabs have the last records data.
    Thoughts... is this really boring to everyone but me?
    Sam

  • Data Populated in a single row??

    Hi,
    I have a requirement as follows:
    Suppose there is a column "A". There many be "n" no. of records for that column "A"
    I want the code logic for this to sum up all the "n"  no. of records,which is of  type amount and to be populated in a single row.
    Ex :
    Column A
    7867.68
    5658.65
    566765.44
    n
    like this "n"  no. of records would be populated (at the runtime).
    I need the output as :
    Column A
    SUM(7867.68 + 5658.65 + 566765.44 + .......n) in a single row.
    Immediate reply would be greatly appreciated.
    Thanks in advance,
    Regards,
    Vamc
    Message was edited by: Manish Kumar : Do not ask for urgent/immediate reply

    Hi vamshi,
    Both Collect and AT END OF.... END AT, we can use for the above requirement.
    Collect Statement:
    LOOP AT IT_TABLE into WA_TABLE.
         COLLECT WA_TABLE TO IT_FINAL.
    ENDLOOP.
    Control Break Statement (AT END OF... END AT):
    If you are using Control break statement, before LOOP Statement, sort the table as shown below.
    "Data Declarations
    DATA: L_END TYPE I VALUE 0,
                L_COUNT TYPE I VALUE 0.
    "Sort the Internal Table
    SORT IT_TABLE BY MATNR.
    LOOP AT IT_TABLE INTO WA_TABLE.
         L_COUNT = L_COUNT + WA_TABLE-VALUE.
         AT END OF MATNR.
              L_END = 1.
         ENDAT.
         IF L_END = 1.
         MOVE CORRESPONDING WA_TABLE to WA_FINAL.
         "Assign Count value
         WA_FINAL-TOTAL  = L_COUNT.
         "Append the value to Internal Table
         APPEND WA_FINAL TO IT_FINAL.
         "Clear WA & Count
         CLEAR: WA_FINAL,
                        L_COUNT,
                        L_END.
         ENDIF.
    ENDLOOP.
    Regards
    Rajkumar Narasimman

  • TO MAKE SINGLE ROW EDITABLE IN WEBDYNPRO ABAP

    HI
    I WANT TO MAKE A SINGLE ROW EDITABLE IN MY TABLE CONTROL IS IT POSSIBLE?
    IF YES THEN HOW?
    I KNOW ABOUT  READ ONLY FIELDS BUT I DO NOT KNOW HOW TO UTILIZE  IT

    Hi Rajan,
    Which particular row of the table do you want to set as editable? That would be important for formulating the way in which you should code.
    Suppose you are displaying the data of MARA using a table and want to make editable only rows in which the unit of measurement is equal to "CCM" then you can proceed as below.
    Create a context node (say MARA) with desired fields as attributes. (Cardinality 0..n, Selection 0..1, Initialize lead selection) In addition create an attribute (say READONLY) of type WDY_BOOLEAN under the same node (MARA) which you are using for binding to the table.
    First of all take all the cell editors of the table as type, "InputField" to make the entire table as editable. Then go to the each cell editor (TABLE_MATNR_EDITOR, TABLE_ERSDA_EDITOR,...) and bind the readOnly property of the cell to the attribute created earlier. (READONLY)
    Below is the coding in WDDOINIT through which you set the desired functionality
    METHOD wddoinit .
      DATA: lv_node TYPE REF TO if_wd_context_node,
            lt_mara TYPE ig_componentcontroller=>elements_mara,
            wa_mara TYPE ig_componentcontroller=>element_mara.
      SELECT matnr
             ersda
             ernam
             mtart
             matkl
             meins FROM mara INTO CORRESPONDING FIELDS OF TABLE lt_mara
                                     WHERE meins = 'GM' OR meins = 'CCM'.
      SORT lt_mara BY meins.
      lv_node = wd_context->get_child_node( name = wd_this->wdctx_mara ).
      LOOP AT lt_mara INTO wa_mara.
        IF wa_mara-meins = 'GM'.
          wa_mara-readonly = 'X'.
        ELSE.
          wa_mara-readonly = ' '.
        ENDIF.
        MODIFY lt_mara FROM wa_mara TRANSPORTING readonly.
      ENDLOOP.
      lv_node->bind_table( new_items = lt_mara ).
    ENDMETHOD.
    Regards,
    Uday

  • SINGLE ROW EDITABLE in REUSE_ALV_GRID_DISPLAY

    Hi Experts,
    I have a requirement in which i need to make a single row editable in ALV . Can u please tell me the procedure to make a single row editable using REUSE_ALV_GRID_DISPLAY.
    <<removed by moderator>>
    Thanks,
    Shrikanth

    Hi Sree,
    There are many codes available on net do spend some time to search i have shown one sample code copy paste and execute and according to your issue you make the modifications.
    You can see Net price will be in editable mode.
    TABLES:     ekko.
    TYPE-POOLS: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      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,
      field_style  TYPE lvc_t_styl, "FOR DISABLE
    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.
    DATA: it_fieldcat TYPE lvc_t_fcat,     "slis_t_fieldcat_alv WITH HEADER LINE,
          wa_fieldcat TYPE lvc_s_fcat,
          gd_tab_group TYPE slis_t_sp_group_alv,
          gd_layout    TYPE lvc_s_layo,     "slis_layout_alv,
          gd_repid     LIKE sy-repid.
    *Start-of-selection.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM set_specific_field_attributes.
      PERFORM build_fieldcatalog.
      PERFORM build_layout.
      PERFORM display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
      wa_fieldcat-fieldname   = 'EBELN'.
      wa_fieldcat-scrtext_m   = 'Purchase Order'.
      wa_fieldcat-col_pos     = 0.
      wa_fieldcat-outputlen   = 10.
      wa_fieldcat-emphasize   = 'X'.
      wa_fieldcat-key         = 'X'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'EBELP'.
      wa_fieldcat-scrtext_m   = 'PO Item'.
      wa_fieldcat-col_pos     = 1.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'STATU'.
      wa_fieldcat-scrtext_m   = 'Status'.
      wa_fieldcat-col_pos     = 2.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'AEDAT'.
      wa_fieldcat-scrtext_m   = 'Item change date'.
      wa_fieldcat-col_pos     = 3.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'MATNR'.
      wa_fieldcat-scrtext_m   = 'Material Number'.
      wa_fieldcat-col_pos     = 4.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'MENGE'.
      wa_fieldcat-scrtext_m   = 'PO quantity'.
      wa_fieldcat-col_pos     = 5.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'MEINS'.
      wa_fieldcat-scrtext_m   = 'Order Unit'.
      wa_fieldcat-col_pos     = 6.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'NETPR'.
      wa_fieldcat-scrtext_m   = 'Net Price'.
      wa_fieldcat-edit        = 'X'. "sets whole column to be editable
      wa_fieldcat-col_pos     = 7.
      wa_fieldcat-outputlen   = 15.
      wa_fieldcat-datatype     = 'CURR'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname   = 'PEINH'.
      wa_fieldcat-scrtext_m   = 'Price Unit'.
      wa_fieldcat-col_pos     = 8.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
          Build layout for ALV grid report
    FORM build_layout.
    Set layout field for field attributes(i.e. input/output)
      gd_layout-stylefname = 'FIELD_STYLE'.
      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'
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
           EXPORTING
                i_callback_program      = gd_repid
               i_callback_user_command = 'USER_COMMAND'
                is_layout_lvc               = gd_layout
                it_fieldcat_lvc             = it_fieldcat
                i_save                  = 'X'
           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  set_specific_field_attributes
          populate FIELD_STYLE table with specific field attributes
    form set_specific_field_attributes .
      DATA ls_stylerow TYPE lvc_s_styl .
      DATA lt_styletab TYPE lvc_t_styl .
    Populate style variable (FIELD_STYLE) with style properties
    The NETPR field/column has been set to editable in the fieldcatalog...
    The following code sets it to be disabled(display only) if 'NETPR'
    is gt than 10.
      LOOP AT it_ekko INTO wa_ekko.
        IF wa_ekko-netpr GT 10.
          ls_stylerow-fieldname = 'NETPR' .
          ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.
                                                 "set field to disabled
          APPEND ls_stylerow  TO wa_ekko-field_style.
          MODIFY it_ekko FROM wa_ekko.
        ENDIF.
      ENDLOOP.
    endform.                    " set_specific_field_attributes
    Cheers!!
    VEnk@

  • Group By element ID and continuous date range as a single row - URGENT!!!!

    Hi All,
    I have a source table and a target table.
    Source Table Target Table
    Element ID Period_dt Element ID Effective date End date
    DD001 200901 DD001 200901 200903
    DD001 200902 DD001 200906 200908
    DD001 200903 DD002 200801 200803
    DD001 200906
    DD001 200907
    DD001 200908
    DD002 200801
    DD002 200802
    DD002 200803
    I want the result as in the target table. Basically, continuous date range should be grouped and shown as single row even it falls under the same elment_id.
    I have tried the LAG and LEAD function and RANK function as well but unsuccessful.
    I was able to get like this in the target table using MIN and MAX function.
    DD001 200901 200908
    DD002 200801 200803
    For DD001, you can see there is a break in the months. 200901 - 200903 and 200906 - 200908. we are missing 4th,5th month. 1 to 3rd month and 6th to 8th month should be grouped and shown as separate rows in the target table for the same DD001 element_ID
    I will post the SQL query tommorrow. Please give your suggestions.
    Regards
    Balaji

    Thanks guys. It worked perfectly. I apologize for using the 'U' word. This is my first post here.
    select prod_element_cd,
    min(period_dt) effective_date,
    max(Last_day(period_dt)) end_date,
    SUM(Fixed_factor),
    SUM(var_factor),
    val1
    from (
    select prod_element_cd, period_dt,Fixed_factor,var_factor, val, last_value(val ignore nulls) over(partition by prod_element_cd order by period_dt) val1
    from (
    select prod_element_cd,
    period_dt,
    NVL(Fixed,0) Fixed_factor,
    NVL(variable,0) var_factor,
    lag(period_dt) over(partition by prod_element_cd order by period_dt) dt,
    case when add_months(period_dt,-1) = lag(period_dt) over(partition by prod_element_cd order by period_dt)
    then null
    else rownum end val
    from pmax_land.TMP_COST_CASH_STD_INPUT)
    group by prod_element_cd, val1
    order by prod_element_cd
    The above query pulls the below result
    PROD_ELEMENT_CD EFFECTIVE_DATE END_DATE FIXED VARIABLE VAL1
    DDA001 01/01/2009 03/31/2009 4.20 7.62 1.00
    DDA001 06/01/2009 11/30/2009 4.80 0.72 10.00
    DDA001 01/01/2010 01/31/2010 0.75 0.50 13.00
    DDA002 07/01/2008 09/30/2008 2.40 0.36 11.00
    DDA002 02/01/2008 03/31/2008 1.50 1.00 14.00
    one more logic added to the requirement
    for each occurance, for eg: DDA001, the last row of DDA001 should be taken and the end_date of that should be hardcoded to 12/31/9999
    here we have two cases
    last row for DDA001 end_date
    DDA001 01/01/2010 01/31/2010 0.75 0.50 13.00
    end date is 01/31/2010 for this above row of DDA001. It should be hardcoded to 12/31/9999
    similarly
    last row for DDA002 end_date
    DDA002 02/01/2008 03/31/2008 1.50 1.00 14.00
    end date is 03/31/2008 for this above row of DDA002. It should be hardcoded to 12/31/9999
    Similarly for DDA003,DDA004.......... etc
    Thanks for your previous replies. Please give your suggestions.
    Regards
    Balaji
    Edited by: user12119826 on Oct 27, 2009 11:49 PM

  • Display of data in a single row

    Hi
    Here is my query:
    SELECT
    --Element Classification Details:
    pec.CLASSIFICATION_ID,
    pec.classification_name,
    pec1.classification_id "Sub Classification Id",
    DECODE(pec1.classification_name,'Other Deductions', 'Other Deductions',
    'Others Voluntary Deductions', 'Other Deductions',
    'Personal Deductions', 'Personal Deductions',
    'Personal Voluntary Deductions', 'Personal Deductions',
    'Car Loan Deductions') "Sub Classification",
    pec1.parent_classification_id,
    scr.sub_classification_rule_id,
    --Element Details:
    pet.element_name, pet.element_type_id, pet.reporting_name,
    DECODE(pet.processing_type, 'R', 'Recurring', 'Nonrecurring') "Processing Type",
    pet.EFFECTIVE_START_DATE, pet.EFFECTIVE_END_DATE,
    --Run Result Details:
    prr.run_result_id,
    TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)) "Amount",
    piv.NAME "Input Value",
    --Assignment Details:
    paa.assignment_id,
    --Time Period
    ptp.START_DATE, ptp.end_date,
    ptp.period_name "Payroll Period"
    FROM hr.pay_element_classifications pec,
    hr.pay_element_classifications pec1,
    hr.pay_sub_classification_rules_f scr,
    hr.pay_element_types_f pet,
    hr.pay_run_results prr,
    hr.pay_run_result_values prrv,
    hr.pay_input_values_f piv,
    hr.pay_assignment_actions assact,
    hr.per_all_assignments_f paa,
    hr.pay_payroll_actions payroll,
    hr.per_time_periods ptp
    WHERE
    pec.classification_id = pec1.parent_classification_id (+)
    AND scr.classification_id = pec1.classification_id
    AND pet.classification_id = pec.classification_id
    AND scr.element_type_id = pet.element_type_id
    AND pet.ELEMENT_TYPE_ID = prr.ELEMENT_TYPE_ID
    AND prr.run_result_id = prrv.run_result_id
    AND piv.input_value_id = prrv.input_value_id
    AND assact.ASSIGNMENT_ACTION_ID = prr.ASSIGNMENT_ACTION_ID
    AND paa.ASSIGNMENT_ID = assact.ASSIGNMENT_ID
    AND payroll.payroll_action_id = assact.PAYROLL_ACTION_ID
    AND ptp.TIME_PERIOD_ID = payroll.time_period_id
    AND ptp.end_date BETWEEN scr.EFFECTIVE_START_DATE AND scr.EFFECTIVE_END_DATE
    AND ptp.end_date BETWEEN pet.effective_start_date AND pet.effective_end_date
    AND ptp.end_date BETWEEN paa.EFFECTIVE_START_DATE AND paa.EFFECTIVE_END_DATE
    AND pec.CLASSIFICATION_NAME IN ('Voluntary Deductions', 'Pre-Tax Deductions')
    AND pec1.classification_name LIKE '%Deduction%'
    AND piv.name = 'Pay Value'
    AND paa.payroll_id != 0
    AND paa.pay_basis_id != 0
    AND paa.ASSIGNMENT_ID = '560'
    I needed to display the amounts as separate columns pertaining to different elements or rather different sub classification of the elements
    This is the final expected result for the report:
    Employee Personal Deductions PD Amount Other Deductions OD Amt
    XYZ Element1 00000.00 Element3 0000.00
    Element 2
    Car Loan Deductions CLD Amt Total Deductions (Total of all three)
    Element4 00000.00 00000000.00
    Here Personal Deductions, Other, Car Loan etc. are grouping of elements (sub classifications)
    I have used MAX function to display the results as separate columns like this:
    SELECT
    --Run Result Details:
    prr.run_result_id,
    MAX(DECODE(pec1.classification_name, 'Personal Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Personal Deductions",
    MAX(DECODE(pec1.classification_name, 'Personal Voluntary Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Personal V Deductions",
    MAX(DECODE(pec1.classification_name, 'Other Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Other Deductions",
    MAX(DECODE(pec1.classification_name, 'Others Voluntary Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Others V Deductions",
    MAX(DECODE(pec1.classification_name, 'Car Loan Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Car Loan Deductions"
    /*--Assignment Details:
    paa.assignment_id,
    --Time Period
    ptp.START_DATE, ptp.end_date,
    ptp.period_name "Payroll Period"*/
    FROM hr.pay_element_classifications pec,
    hr.pay_element_classifications pec1,
    hr.pay_sub_classification_rules_f scr,
    hr.pay_element_types_f pet,
    hr.pay_run_results prr,
    hr.pay_run_result_values prrv,
    hr.pay_input_values_f piv
    /*hr.pay_assignment_actions assact,
    hr.per_all_assignments_f paa,
    hr.pay_payroll_actions payroll,
    hr.per_time_periods ptp*/
    WHERE
    pec.classification_id = pec1.parent_classification_id (+)
    AND scr.classification_id = pec1.classification_id
    AND pet.classification_id = pec.classification_id
    AND scr.element_type_id = pet.element_type_id
    AND pet.ELEMENT_TYPE_ID = prr.ELEMENT_TYPE_ID
    AND prr.run_result_id = prrv.run_result_id
    AND piv.input_value_id = prrv.input_value_id
    /*AND assact.ASSIGNMENT_ACTION_ID = prr.ASSIGNMENT_ACTION_ID
    AND paa.ASSIGNMENT_ID = assact.ASSIGNMENT_ID
    AND payroll.payroll_action_id = assact.PAYROLL_ACTION_ID
    AND ptp.TIME_PERIOD_ID = payroll.time_period_id
    --and pet.element_NAME like 'IVTB%' 
    AND ptp.end_date BETWEEN scr.EFFECTIVE_START_DATE AND scr.EFFECTIVE_END_DATE
    AND ptp.end_date BETWEEN pet.effective_start_date AND pet.effective_end_date
    AND ptp.end_date BETWEEN paa.EFFECTIVE_START_DATE AND paa.EFFECTIVE_END_DATE*/
    AND pec.CLASSIFICATION_NAME IN ('Voluntary Deductions', 'Pre-Tax Deductions')
    AND pec1.classification_name LIKE '%Deduction%'
    AND piv.name = 'Pay Value'
    --and paa.PRIMARY_FLAG like 'Y%'
    /*AND paa.payroll_id != 0
    AND paa.pay_basis_id != 0*/
    GROUP BY
    prr.run_result_id
    However, the fact is that my each element_type_id has each run_result_id, which means 1 element has 1 run result id. Thus, I cannot display the data in a single row.
    Can someone guide me on this? How can I display the data for an employee as a single row?
    Thanks and regards,
    Aparna

    SELECT EMP_ID,
         Sum(Decode(DECODE(pec1.classification_name,'Other Deductions', 'Other Deductions','Others Voluntary Deductions', 'Other Deductions'),'Other Deductions',TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) 'Other deduction',
         sum(Decode(DECODE(pec1.classification_name,'Personal Deductions', 'Personal Deductions', 'Personal Voluntary Deductions', 'Personal Deductions'),'Personal Deductions'),TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) 'Personal deduction',
         sum(DECODE(pec1.classification_name,'Car Loan Deductions',TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) 'Car deduction'
    FROM hr.pay_element_classifications pec,
    hr.pay_element_classifications pec1,
    hr.pay_sub_classification_rules_f scr,
    hr.pay_element_types_f pet,
    hr.pay_run_results prr,
    hr.pay_run_result_values prrv,
    hr.pay_input_values_f piv,
    hr.pay_assignment_actions assact,
    hr.per_all_assignments_f paa,
    hr.pay_payroll_actions payroll,
    hr.per_time_periods ptp
    WHERE
    pec.classification_id = pec1.parent_classification_id (+)
    AND scr.classification_id = pec1.classification_id
    AND pet.classification_id = pec.classification_id
    AND scr.element_type_id = pet.element_type_id
    AND pet.ELEMENT_TYPE_ID = prr.ELEMENT_TYPE_ID
    AND prr.run_result_id = prrv.run_result_id
    AND piv.input_value_id = prrv.input_value_id
    AND assact.ASSIGNMENT_ACTION_ID = prr.ASSIGNMENT_ACTION_ID
    AND paa.ASSIGNMENT_ID = assact.ASSIGNMENT_ID
    AND payroll.payroll_action_id = assact.PAYROLL_ACTION_ID
    AND ptp.TIME_PERIOD_ID = payroll.time_period_id
    AND ptp.end_date BETWEEN scr.EFFECTIVE_START_DATE AND scr.EFFECTIVE_END_DATE
    AND ptp.end_date BETWEEN pet.effective_start_date AND pet.effective_end_date
    AND ptp.end_date BETWEEN paa.EFFECTIVE_START_DATE AND paa.EFFECTIVE_END_DATE
    AND pec.CLASSIFICATION_NAME IN ('Voluntary Deductions', 'Pre-Tax Deductions')
    AND pec1.classification_name LIKE '%Deduction%'
    AND piv.name = 'Pay Value'
    AND paa.payroll_id != 0
    AND paa.pay_basis_id != 0     
    I hope this may help!
    Brijesh

Maybe you are looking for