Checking Previous record with current record.

I have a small problem, i want to compare the previous record with the current record with in cursor declared....
Please help in this issue.
Thanks in advance.

Try the lag analytic function.
select some_value, lag(some_value) over (order by your_ordering_condition) from x order by your_ordering_condition

Similar Messages

  • How to check  the date with current day after 5 days

    Hello,
    I need to make the visible of delete button in my struts application. I've application in which user can be deactivated. If the user is deactivated and the admin can't delete the user for the specific period of time (set in property file). while deactivating the user, system time is set. and 5 days after the system time's set, i need to make the button visible.
    This is my code.
    Calendar cal = Calendar.getInstance();
    Date deActivatedDate = null;
    deActivatedDate =new Date(userData.getDeActivatedTime().getTime());// Set it in the Calendar object
    cal.setTime(deActivatedDate);                    // Add 5 days
    cal.add(Calendar.DATE, 5);// get the current date
    Calendar currentCal = Calendar.getInstance();
    Date currentDate = new Date();
    currentCal.setTime(currentDate);// check if the de-activation time is over.
    if (cal.get(Calendar.DATE) < currentCal.get(Calendar.DATE)) {
    userData.setDeletionAllowed(true);}
    can anyone help to solve this issue?

    What's the problem with the code that you posted?

  • How compare previous records in runtime, in forms

    Hi
    Please help me in below
    I have a form with columns Country_name,Country_code,Risk_level,Currency(unique) and Bank. and form is having multiple records.
    Here I can enter duplicate values in Country_name,Country_code,Risk_level.
    1) In currency Column, If I give USD it should check previous record of currency column,whether currency column is having a value for particular country. if yes, it should not allow. If now it should allow.
    2) If I give any currency other than ALL, then it should not allow ALL in next record.
    3) If I give ALL in currency column for first record, in next record it should not allow others currencies including ALL for particular country.
    Need help....
    Regards,
    Raghu
    Edited by: 914330 on 13-May-2012 22:25
    Edited by: 914330 on 14-May-2012 01:05

    This would be a fine sample for an analytic function. Look up lead and lag at http://tahiti.oracle.com and build a view upon your table using the analytic functions.
    cheers

  • Check number sequence - previous record variable

    Post Author: rmhogan
    CA Forum: Formula
    I am trying to highlight a record that is out of number sequence with the previous record.  I am guessing that I need to create 2 variables (one for the current number and one for the previous number).  I cannot seem to get this to work.
    Any help would be appriciated.
    Example ....
    Check Number
    016000123
    016000124
    016000126 <--- out of sequence (I want to highlight this detail line)
    016000127

    Post Author: rmhogan
    CA Forum: Formula
    Thanks so much.  However, I am getting a error saying  ... "The formula result must be a number".  The fields are strings in the database, however I have converted the to numbers in a formula  &#91;tonumber() function&#93;.
    Any ideas.

  • Get three previous records of the current record

    Hi,
    I need to get three previous records of the current record in an Oracle Form
    Sorry for the lengthy explanation:
    I have a table name: ARCHIVE_DATA with column name: coll_time and its data type DATE.
    SQL> SELECT COLL_TIME FROM ARCHIVE_DATA;
    COLL_TIME
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    10 rows selected.
    SQL> select to_char(coll_time,'dd-mon-yyyy:HH:MI:SS') from ARCHIVE_DATA;
    TO_CHAR(COLL_TIME)
    12-aug-2005:02:42:00
    12-aug-2005:02:43:00
    12-aug-2005:02:44:00
    12-aug-2005:02:45:00
    12-aug-2005:02:46:00
    12-aug-2005:02:47:00
    12-aug-2005:02:48:00
    12-aug-2005:02:49:00
    12-aug-2005:02:50:00
    12-aug-2005:02:51:00
    10 rows selected.
    This is the Requirement:
    In a Form's Block(BLK1), for example: the current_record is the fifth record from the top
    (i.e. 12-aug-2005:02:46:00)
    When the fifth record is the current_record and When I click a button, three previous records of the
    current_record should be populated on the screen.
    See what I did:
    I created another table same as the first table(ARCHIVE_DATA) and its name is: THREE_RECS.
    I am inserting three records from the first table(ARCHIVE_DATA) into the second table: THREE_RECS
    which are less than the current record and ORDER BY DESC.
    CANVAS:
    Two blocks (BLK1, BLK2) based on ARCHIVE_DATA and THREE_RECS are on the same CANVAS.
    But the first block (BLK1) which is based on the first table:ARCHIVE_DATA is populated with one record and the
    second block (BLK2) is empty.
    So when I click a particular button (ex: prev_recs), the second block(BLK2) should be populated with
    three previous records of the current record( :BLK1.COLL_TIME)
    (off course :BLK2 populates with one record and use arrows or scrollbar to get the other two records)
    This is the code I wrote in the trigger and followed by the error:
    1 BEGIN
    2 DECLARE
    3 cursor c1 IS
    4           SELECT MONITOR_ID,
    5               SAMPLE_ID,
    6               COLL_TIME,
    7               DEW_POINT
    8          FROM ARCHIVE_DATA;
    9 cursor c2(passing_date IN date) IS
    10           SELECT MONITOR_ID,
    11               SAMPLE_ID,
    12               COLL_TIME,
    13               DEW_POINT
    14          FROM (SELECT MONITOR_ID,
    15               SAMPLE_ID,
    16               COLL_TIME,
    17               DEW_POINT
    18          FROM ARCHIVE_DATA
    19          ORDER BY COLL_TIME desc)
    20      WHERE COLL_TIME < passing_date;
    21     BEGIN
    22     FOR cur_rec in c1
    23     LOOP
    24          IF (cur_rec.COLL_TIME = to_date(:BLK.COLL_TIME,'dd-mon-yyyy:HH24:mi:ss')) then
    25     FOR second_cur_rec in c2(second_cur_rec.COLL_TIME)
    26          LOOP
    27      IF c2%rowcount < 4 then
    28               BEGIN
    29               INSERT INTO THREE_RECS
    30                    values(second_cur_rec.MONITOR_ID,
    31                         second_cur_rec.SAMPLE_ID,
    32                         second_cur_rec.COLL_TIME,
    33                         second_cur_rec.DEW_POINT);
    34               COMMIT;
    35               END IF;
    36 END LOOP;
    37 END IF;
    38 END LOOP;
    39 END;
    40 END;
    This is the error I am getting:
    Error 103 at line 14
    Encountered the symbol "(" when expecting one of the following
    a PL/SQL variable or double quoted string
    an expanded name
    an expanded name link
    a table reference __expression
    a key word
    Resuming parse at line 126, column 46
    Thanks in advance

    Why not just a simple select that doesn't involve a second table and PL/SQL?
    sql>select * from t1 order by dt;
    DT
    08/12/2005 02:42:00am
    08/12/2005 02:43:00am
    08/12/2005 02:44:00am
    08/12/2005 02:45:00am
    08/12/2005 02:46:00am
    08/12/2005 02:47:00am
    08/12/2005 02:48:00am
    08/12/2005 02:49:00am
    08/12/2005 02:50:00am
    08/12/2005 02:51:00am
    10 rows selected.
    sql>select dt
      2    from (select dt, row_number() over (order by dt desc) rn
      3            from t1
      4           where dt < to_date('12-aug-2005:02:46:00', 'dd-mon-yyyy:hh:mi:ss'))
      5   where rn <= 3
      6   order by dt;
    DT
    08/12/2005 02:43:00am
    08/12/2005 02:44:00am
    08/12/2005 02:45:00am
    3 rows selected.If the use of an analytical function (row_number()) is a problem with Forms, then the query can also be done as:
    sql>select dt
      2    from (select dt
      3            from (select dt
      4                    from t1
      5                   where dt < to_date('12-aug-2005:02:46:00', 'dd-mon-yyyy:hh:mi:ss')
      6                   order by dt desc)
      7           where rownum <= 3)
      8   order by dt;
    DT
    08/12/2005 02:43:00am
    08/12/2005 02:44:00am
    08/12/2005 02:45:00am
    3 rows selected.

  • Get three previous records of the current record in an Oracle Form

    Hi,
    I need to get three previous records of the current record in an Oracle Form
    Sorry for the lengthy explanation:
    I have a table name: ARCHIVE_DATA with column name: coll_time and its data type DATE.
    SQL> SELECT COLL_TIME FROM ARCHIVE_DATA;
    COLL_TIME
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    12-AUG-05
    10 rows selected.
    SQL> select to_char(coll_time,'dd-mon-yyyy:HH:MI:SS') from ARCHIVE_DATA;
    TO_CHAR(COLL_TIME)
    12-aug-2005:02:42:00
    12-aug-2005:02:43:00
    12-aug-2005:02:44:00
    12-aug-2005:02:45:00
    12-aug-2005:02:46:00
    12-aug-2005:02:47:00
    12-aug-2005:02:48:00
    12-aug-2005:02:49:00
    12-aug-2005:02:50:00
    12-aug-2005:02:51:00
    10 rows selected.
    This is the Requirement:
    In a Form's Block(BLK1), for example: the current_record is the fifth record from the top
    (i.e. 12-aug-2005:02:46:00)
    When the fifth record is the current_record and When I click a button, three previous records of the
    current_record should be populated on the screen.
    See what I did:
    I created another table same as the first table(ARCHIVE_DATA) and its name is: THREE_RECS.
    I am inserting three records from the first table(ARCHIVE_DATA) into the second table: THREE_RECS
    which are less than the current record and ORDER BY DESC.
    CANVAS:
    Two blocks (BLK1, BLK2) based on ARCHIVE_DATA and THREE_RECS are on the same CANVAS.
    But the first block (BLK1) which is based on the first table:ARCHIVE_DATA is populated with one record and the
    second block (BLK2) is empty.
    So when I click a particular button (ex: prev_recs), the second block(BLK2) should be populated with
    three previous records of the current record( :BLK1.COLL_TIME)
    (off course :BLK2 populates with one record and use arrows or scrollbar to get the other two records)
    This is the code I wrote in the trigger and followed by the error:
    1 BEGIN
    2 DECLARE
    3 cursor c1 IS
    4           SELECT MONITOR_ID,
    5               SAMPLE_ID,
    6               COLL_TIME,
    7               DEW_POINT
    8          FROM ARCHIVE_DATA;
    9 cursor c2(passing_date IN date) IS
    10           SELECT MONITOR_ID,
    11               SAMPLE_ID,
    12               COLL_TIME,
    13               DEW_POINT
    14          FROM (SELECT MONITOR_ID,
    15               SAMPLE_ID,
    16               COLL_TIME,
    17               DEW_POINT
    18          FROM ARCHIVE_DATA
    19          ORDER BY COLL_TIME desc)
    20      WHERE COLL_TIME < passing_date;
    21     BEGIN
    22     FOR cur_rec in c1
    23     LOOP
    24          IF (cur_rec.COLL_TIME = to_date(:BLK.COLL_TIME,'dd-mon-yyyy:HH24:mi:ss')) then
    25     FOR second_cur_rec in c2(second_cur_rec.COLL_TIME)
    26          LOOP
    27      IF c2%rowcount < 4 then
    28               BEGIN
    29               INSERT INTO THREE_RECS
    30                    values(second_cur_rec.MONITOR_ID,
    31                         second_cur_rec.SAMPLE_ID,
    32                         second_cur_rec.COLL_TIME,
    33                         second_cur_rec.DEW_POINT);
    34               COMMIT;
    35               END IF;
    36 END LOOP;
    37 END IF;
    38 END LOOP;
    39 END;
    40 END;
    This is the error I am getting:
    Error 103 at line 14
    Encountered the symbol "(" when expecting one of the following
    a PL/SQL variable or double quoted string
    an expanded name
    an expanded name link
    a table reference __expression
    a key word
    Resuming parse at line 126, column 46
    Thanks in advance

    Change C2 to:
    cursor c2(passing_date IN date) IS
      SELECT MONITOR_ID, SAMPLE_ID,
                   COLL_TIME, DEW_POINT
        FROM ARCHIVE_DATA
        WHERE COLL_TIME < passing_date
        ORDER BY COLL_TIME desc;And rather than populating a table with the three records, you could just select the three records using: where COLL_TIME between Prev3_time and Prev1_time

  • Issue with clearing previous record while uploading through LSMW

    Hi friends,
    I have created lsmw for hiring action using transaction PA40. i have a tab delimited flat file, when i run the lsmw script the first record is uploaded perfectly. However the upload halts for the second record, coz the previous record still remanins, is there an issue with the recording or do i need to clear anything?. How do i resolve  this one and continue uploading other records.
    Regards,
    Quavi

    Hi Friend,
    In the LSMW, Under the User menu you have Display Read Program and Display Conversion Program select this and open the respective program you feel having problem and put a break point in the Loop statement and debug. I will help you to identify the problem to resolve.
    Rgds,
    Jey

  • How to get the previous record value in the current record plz help me...

    In my sql how to get the previous record value...
    in table i m having the field called Date i want find the difference b/w 2nd record date value with first record date... plz any one help me to know this i m waiting for ur reply....
    Thanx in Advance
    with regards
    kotresh

    First of this not hte mysql or database forum so don;t repeate again.
    to get diff between two date in mysql use date_format() to convert them to date if they r not date type
    then use - (minus)to get diff.

  • HOW TO COPY THE PREVIOUS RECORD TO THE CURRENT RECORD

    Hi all,
    i am using form 6i.
    i have one multi record block. the user has to enter all the values and store it to the table.
    My requirement is - if user is in some blank record, if user clicks the button then all the previous record values should be coppied to the record where the user has placed the cursor.
    please help me..
    Thanks..

    user13329002 wrote:
    Except these columns all other columns should be copied when i press the button.So? Use duplicate_record and set the columns you don't want to copy to null or a value you want?
    duplicate_record;
    :my_block.creation_date := sysdate;
    :my_block.modiefied_date := null;cheers

  • Previous record values displaying in the Group Footer row in the report.

    Hi Friends,
    I have 3 tables
    TableA:(PERNR BEGDA ENDDA are key fields)
    PERNR BEGDA    ENDDA      WERKS
    10001 1/1/2010 12/31/9999 1001
    TableB:(PERNR BEGDA ENDDA SUBTY are key fields)
    PERNR BEGDA    ENDDA       SUBTY  TYPES
    10001 1/1/2010 12/31/9999   01          COMS1
    10001 1/1/2010 12/31/9999   02         COMS2
    TableC:(PERNR BEGDA  ENDDA are key fields)
    PERNR BEGDA  ENDDA        AMNT
    10001 2/2/1997 4/3/2010      1000
    10001 4/4/2010 12/31/9999  2000
    I have joined these table by the key 'PERNR'( like A->B and A->C)
    Groped by the same key 'PERNR'
    My result rows in the report:
    PERNR BEGDA    ENDDA      WERKS  SUBTY  TYPES  BEGDA    ENDDA      AMNT
    10001 1/1/2010 12/31/9999 1001       01         COMS1  2/2/1997 4/3/2010    1000
    10001 1/1/2010 12/31/9999 1001       02         COMS2  2/2/1997 4/3/2010    1000
    10001 1/1/2010 12/31/9999 1001       01         COMS1  4/4/2010 12/31/9999 2000
    10001 1/1/2010 12/31/9999 1001       02         COMS2  4/4/2010 12/31/9999 2000
    But in the report format is like this in the Group Footer row:
    PERNR: 10001                     WERKS:1001
    SUBTY: 02                          AMNT :2000 (Current date)
                                                AMNT :1000 (Previous record)
    I created the format with "Previous" function
    but in the report it is giving the '2000' instead of '1000' in the AMT field
    Please help me, can i use the for loop in the report? or any sugessions?
    Thanks in advance.
    Regards,
    Venkata

    A group footer will dis[lay contents of the last record. You need to sort records to ensure that the last record contains link to your dynamic image.
    Ian

  • Using Garageband and I cannot hear previously recorded tracks on headphones.  Prefs are set to output on EMU0404 my audio device - this did work but now is not working.

    I am using Garageband and I cannot hear the previously recorded tracks on my headphones.  I am using an audio input/output device, EMU0404 - this was previously working fine but stopped.  All cables check out OK and so does the unit - I have updated to the latest version of Garageband but this did not help.  Any suggestion?

    Hi Christoph,
    I cannot see anything wrong with the EMU0404.  This is what puzzels me ... Garageband looks OK - headphones are OK - EMU looks OK.
    Thanks anyway
    Paul

  • UDF: how to get a value in the previous record when lopping over records?

    Hello
    I have this challenge:
    Source message:
    <row>
      <ID>111</ID>
      <Score>200</Score>
      <Date>2010-01-01</Date>
    </row>
    <row>
      <ID>111</ID>
      <Score>230</Score>
      <Date>2010-01-02</Date>
    </row>
    <row>
      <ID>112</ID>
      <Score>230</Score>
      <Date>2010-01-03</Date>
    </row>
    etc...
    Now the case is, that IF the value of ID of the current record (row) is equal to the value of the ID of the previous record AND the Score value of the current record is bigger than the Score value of the previous record THEN a record in the target message must be created with these values:
    Target Message:
    <row>
      <ID_target> value of source ID </ID_target>
      <Score_yesterday> Score value of previous record (day) </Score_yesterday>
      <Score_current_date> Score value of current record </Score_current_date>
      <Date_current> Date of current record  </Date_current>
    </row>
    I am thinking of using GlobalContainer to store the previous values but am note sure how to maintain these previous values. In addition, I am thinking about using a UDF on the target row record, which will just create the row, if conditions are met (result.addValue("");) and then just make a simple mapping of the ID_target, Score_current_date and Date_current fields and make an other UDF for the Score_yesterday field where I get the Score for the previous record using the GlobalContainer value, that I stored in the other UDF.
    BUT:
    Should I use "All values of context" or "All values of Queues" in the UDF used on the row record and how do I make sure, that the Score_yesterday global container value is maintained correctly? I am planning of setting it in the UDF used on the Target row record but will it then be in sync with the consuming UDF of the Score_yesterday field?
    Java code to go into the UDF would be very much appreciated
    Mikael

    int tmp1;
    int tmp2;
    int len = ID.length;
    for(int i =0;i< len;i++)
         if( i!= len-1)
             tmp1 = Integer.parseInt(Score<i>);
             tmp2 = Integer.parseInt(Score[i+1]);
                   if(tmp2 >tmp1)
                     if (TARGET[0].equals("ROW"))
                              result.addValue("");
                          else if (TARGET[0].equals("ID_TARGET"))
                              result.addValue(ID[0]);
                         else if (TARGET[0].equals("SCORE_YDAY"))
                              result.addValue(Score<i>);
                         else if (TARGET[0].equals("SCORE_CDAY"))
                             result.addValue(Score[i+1]);
                         else
                             result.addValue(DT[i+1]);
    I got the following results for the set of data that you provided.
    Target-XML
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_TestingTGT xmlns:ns0="http://monsanto.com/CIC">
       <Row>
          <ID_TARGET>571515198310502207</ID_TARGET>
          <SCORE_YDAY>1000</SCORE_YDAY>
          <SCORE_CDAY>1010</SCORE_CDAY>
          <CURRENT_DATE>2010-03-02 00:00</CURRENT_DATE>
       </Row>
       <Row>
          <ID_TARGET>571515198310502207</ID_TARGET>
          <SCORE_YDAY>1000</SCORE_YDAY>
          <SCORE_CDAY>1050</SCORE_CDAY>
          <CURRENT_DATE>2010-03-04 00:00</CURRENT_DATE>
       </Row>
       <Row>
          <ID_TARGET>571515198310502207</ID_TARGET>
          <SCORE_YDAY>1050</SCORE_YDAY>
          <SCORE_CDAY>1080</SCORE_CDAY>
          <CURRENT_DATE>2010-03-05 00:00</CURRENT_DATE>
       </Row>
       <Row>
          <ID_TARGET>571515198310502108</ID_TARGET>
          <SCORE_YDAY>2000</SCORE_YDAY>
          <SCORE_CDAY>2040</SCORE_CDAY>
          <CURRENT_DATE>2010-03-03 05:00</CURRENT_DATE>
       </Row>
       <Row>
          <ID_TARGET>571515198310502108</ID_TARGET>
          <SCORE_YDAY>2000</SCORE_YDAY>
          <SCORE_CDAY>2040</SCORE_CDAY>
          <CURRENT_DATE>2010-03-05 05:00</CURRENT_DATE>
       </Row>
       <Row>
          <ID_TARGET>571515198310302203</ID_TARGET>
          <SCORE_YDAY>3000</SCORE_YDAY>
          <SCORE_CDAY>3020</SCORE_CDAY>
          <CURRENT_DATE>2010-03-05 00:00</CURRENT_DATE>
       </Row>
    </ns0:MT_TestingTGT>

  • Check duplicate record in array

    suppose i have an array
    int a[]={1,2,3,4,4,5,6,7,7};
    how should i check duplicate record and remove them?
    thanks...

    Write yourself some pseudo-code:
    // Loop though all the elements in the array from 0 to length-2.
    // For each element i, loop through following elements from i+1 to length-1
    // if the following element is equal to the current one, do something with it.
    "do something" can mean either one of two things:
    (1) Remove it (VERY messy) or
    (2) Create a new array and only add in the non-duplicate elements.
    The easiest thing of all would be to create a List and then create a Set from that. Why code all this logic when somebody has already done it for you? Look at the java.util.Arrays and java.util.Collections classes. Use what's been given to you.
    %

  • Synchronize only checked in records from Master to Slave

    Hello All,
    Would someone be able to tell me if there are any CLIX commands that allows the slave to synchronize with the master such that only checked in records are transported from master to slave.
    Regards
    Venkat

    Hi ,
    In free-from search you have option of "expression".
    There you can put the option of "Is checkout version".
    Hope this helps,
    Pls let me know the result.
    + An
    (you didnt closed your previous questions)

  • Adobe Form showing previous records data

    Dear All,
    I have created a wd component consisting of 2 views.
    In the first view i am displaying an ALV. When i select a record and click on the alv button, the second view
    gets called which contains an Adobe Form showing the data.
    The problem i am facing is that the record which gets displayed in the adobe form is the one previous selected record and not the current record which i select.
    Kindly give your valuable suggestions .
    Regards,
    Niti

    this doesn't sound like an adobe issue. you need to set a breakpoint and check which record you're really passing to your interface

Maybe you are looking for

  • Facetime and iMessage problems

    My Facetime and iMessage are not working on my iPad mini, what can I do?

  • Songs stop half way thru

    For some reason songs on my itouch stop in the middle, but the play all the way thru on itunes..tried restoring not working itouch 2 yrs old wondering if its best to buy a new one?

  • Error - The user has no workflow Linkage. Configure workflow.

    Hi All, I am getting following error in  transaction Users_gen. <i><b>'The user has no workflow linkage. Configure workflow'.</b></i> SAP note says, I need to run transaction BBP_CHECK_USERS and select repair level 2. I followed these instructions bu

  • Exchange 2013 NLB Client Connections

    Hi everyone, I'm setting up an Exchange 2013 system, the infrastructure that will be mounted as follows: -> 2 Domain Controllers -> 2 Exchange 2013 backend servers for DAG mailbox -> 2 Servers frontend for client connections on Microsoft NLB. My ques

  • Can not apply transitions

    This is my first try with FCP 7. And the first time I need transitions.. I have about 40 clips in the timeline, each 15-25 sec long. Whenever I want to apply transitions, I get the same message: "There was insufficient media at one or more edit point