Next_Value

Hello

I am trying to reach following the results. I have only LOAN_DATE available and trying to calculate PAY_DATE. PAY_DATE is the same date in the next LOAN_DATE. If there is one line for B_ID even or it's the last line of PAY_DATE database must be empty. I tried with the analytical feature LAST_VALUE Oracle but could get the result. Thank you

B_IDLOAN_DATEPAY_DATE
B123

17/01/2015

04/02/2015

B123

04/02/2015

30/03/2015

B123

30/03/2015


B789

30/04/2015


Hello

LEAD can do the job.

SELECT LEAD (loan_date) OVER (PARTITION BY b_id ORDER BY loan_date)

From your_table;

Tags: Database

Similar Questions

  • Adding value to row above including the status = 1


    Ticket_ID HistoryOrder group value State
    ---------           ------------                -----       -----            ------
    1001                 1                      A                 10                 0
    1001                 2                      B                  20               0
    1001                 3                      C                  30            1
    1001 4 D 40 0
    1001 E 5 50 0
    1001 F 6 60 0
    1001 7 70 1

    1002 K 1 10 0
    1002 2 S 12 0
    1002 3 T 1 OF 15
    1002 4 V 90 0

    1003 1 z 90 0
    1003 90 2P0
    1003 3 C 90 0

    Hello

    -J' I'm trying to find the ticket_ID whose status is '1 '.
    -How long before it 1001 and 1002 are two tickets, whose status is '1 '.
    -For example: above for 1001 and 1002 Tickets_ID, I want to display in a row like (adding State = 1 value from above the line)

    Require the query

    Ticket_ID HistoryOrder group value status value2

    ---------           ------------                -----       -----            ------           ----------

    1001 2 20 0 30 (this value is from the State = 1)
    1001 6 60 0 70 (this value is from the State = 1)
    1002 2 S 12 0 15 (this value is from the State = 1)

    That's the requirement I.

    with t as)

    Select tbl.*,

    Lead (Status) over (partition by order of historyorder ticket_id) next_status,

    (Value) lead on next_value (partition by order of historyorder ticket_id)

    from tbl

    )

    Select ticket_id,

    historyorder,

    GRP,

    value,

    status,

    next_value value2

    t

    where next_status = 1

    /

    TICKET_ID HISTORYORDER G STATUS VALUE2 VALUE
    ---------- ------------ - ---------- ---------- ----------
    1001 2 20 0 30
    1001 6 60 0 70
    1002 2 S 12 0 15

    SQL >

    SY.

  • Remove the NULL values and update the value according to the logic

    Hello

    The problem data

    CREATE TABLE VOLA (SRNO, NUMBER, zeroNUMBER, ANUMBER);

    INSERTION of REM in VOLA

    TOGETHER TO DEFINE

    Insert in VOLA (SRNO, ONE) values (1,237.94);

    Insert in VOLA (SRNO, ONE) values (2, null);

    Insert in VOLA (SRNO, ONE) values (3,203.565);

    Insert in VOLA (SRNO, ONE) values (4,170.69);

    Insert in VOLA (SRNO, ONE) values (5,113.67);

    Insert in VOLA (SRNO, ONE) values (6,93.6);

    Insert in VOLA (SRNO, ONE) values (7,82.03);

    Insert in VOLA (SRNO, ONE) values (8,66.675);

    Insert in VOLA (SRNO, ONE) values (9,63.59);

    Insert in VOLA (SRNO, ONE) values (10,61.415);

    Insert in VOLA (SRNO, ONE) values (11,60.015);

    Insert in VOLA (SRNO, ONE) values (12,58.235);

    Insert in VOLA (SRNO, ONE) values (13,57.805);

    Insert in VOLA (SRNO, ONE) values (14,56.965);

    Insert in VOLA (SRNO, ONE) values (15, null);

    Insert in VOLA (SRNO, ONE) values (16, null);

    I have to remove the NULL values in column 1, the problem is that the position of the NULL values are not fixed, and it can be any position. If all the lines of the columns are null, then throw it away.

    If multiple NULL values are here so I have to do the math as follows to update null with the eigenvalues

    1. If the first line is null then take the 2nd value in row and update it.

    2. If the lines between both is null then take avg of prev and next value not null and refresh it.

    3. If the last value in the column is null, then then take prev and update, in this case last two are null, so I have to take value of prev 14 value line update in

    15th and 16th ranks.

    I want to put this pl/sql logic, somehow, that I thought have loop and counter aapproach and loops through the elements and check and update.

    But always looking for something better before looking to write code. No idea or help will be useful for me.

    I * think * you are looking for something like:

    WITH VOLA (SRNO, ONE)

    AS (select 1,237.94 from all the double union)

    Select 2, union null value double all the

    Select 3,203.565 from all the double union

    Select 4,170.69 from all the double union

    Select 5,113.67 from all the double union

    Select 6,93.6 from all the double union

    Select 7,82.03 from all the double union

    Select 8,66.675 from all the double union

    Select 9,63.59 from all the double union

    Select 10,61.415 from all the double union

    Select 11,60.015 from all the double union

    Select 12,58.235 from all the double union

    Select 13,57.805 from all the double union

    Select 14,56.965 from all the double union

    Choose 15, null of union double all the

    SELECT 16, NULL FROM dual)

    GET_VALUES (SELECT SRNO, ONE ACE,

    , LAST_VALUE (WE IGNORE NULLS) (ORDER BY SRNO CSA ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS PREVIOUS_VALUE

    , first_VALUE (ONE IGNORE NULLS) over (ORDER OF SRNO CSA ROWS BETWEEN 1 SUITE AND FOLLOWS without TERMINALS) AS NEXT_VALUE

    FROM VOLA)

    SELECT SRNO, ONE, CASE

    WHEN IT IS NOT NULL, THEN WE

    OTHER CASES

    WHEN PREVIOUS_VALUE IS NOT NULL AND IS NOT NULL THEN (PREVIOUS_VALUE + NEXT_VALUE) NEXT_VALUE / 2

    WHEN THE PREVIOUS_VALUE IS NOT NULL, THEN PREVIOUS_VALUE

    WHEN THE NEXT_VALUE IS NOT NULL, THEN NEXT_VALUE

    END

    END AS NEW_VALUE

    OF GET_VALUES

    /

    HTH

  • SQL Interpolation of time. Is this Possible?

    I have a table Named FAC_TABLE

    Time (DateTime)_ | _Value (Number)
    2008-02-01 10:16:04, _ | ___10
    2008-02-01 10:18:04, _ | ___13
    2008-02-01 10:19:04, _ | ___11
    2008-02-01 10:20:04, _ | ___12
    2008-02-01 10:21:04, _ | ___10
    2008-02-01 10:23:04, _ | ___11
    2008-02-01 10:24:04, _ | ___16
    2008-02-01 10:25:04, _ | ___15
    2008-02-01 10:27:04, _ | ___15

    We have values according to time, with a common time interval. My need is for interpolation and obtain values at determined time interval say by 5 min'.
    Is it possible to create a SQL query to get values interpolated in a certain period of time?
    example of output: -.

    Time (DateTime)_ | _Value (Number)
    2008-02-01 10:16:04, _ | ___10
    2008-02-01 10:21:04, _ | ___10
    2008-02-01 10:26:04, _ | ___15
    Here there is no time February 1, 2008 10:26:04 ' in Raw data but Interpolation will get the data according to time.

    I can do this programmatically by getting all the values in the DB, but more iteration is needed to get the DB and for treatment. So I'm looking for a SQL solution. Is this Possible?
    I'm using Oracle 11 g.

    Published by: mCm on February 20, 2012 22:32

    Hello

    Welcome to the forum!

    Of course, you can do it in pure SQL. Here's one way:

    WITH     actual_values     AS
    (
         SELECT     time
         ,     LEAD (time)  OVER (ORDER BY time)     AS next_time
         ,     value
         ,     LEAD (value) OVER (ORDER BY time)     AS next_value
         FROM     fac_table
    )
    ,     desired_times     AS
    (
         SELECT     min_time + ( (LEVEL * 5)
                      / (24 * 60)
                      )          AS time
         FROM     (
                   SELECT      MIN (time)     AS min_time
                   ,     MAX (time)     AS max_time
                   FROM     fac_table
              )
         CONNECT BY     LEVEL <= 5 * ( (max_time - min_time)
                             * (14 * 60)
                             )
    )
    SELECT     d.time
    ,     a.value + ( (a.next_value  - a.value)
                * ( (d.time      - a.time)
                  / (a.next_time - d.time)
                  )
                )     AS interpolated_value
    FROM     actual_values     a
    JOIN     desired_times     d  ON     d.time     >= a.time
                      AND     d.time     <  a.next_time
    ;
    

    Sorry, I'm not a database now, so I can't test this.

    The above query assumes that fac_table.time is unique, and that fac_table.value is not NULL.

    Published by: Frank Kulash, February 20, 2012 07:57

  • Default value for the text in a tabular presentation element

    Hello

    I creates a tabular form generated by using a SQL query.
    I would like to first of all the value for a column of nextval deault a sequence when an empty row is added using the add a LINE button

    my request currently for the sequence value column when you click on the ADD row button is:
    apex_item.display_and_save (4, NULL) as trans_id,.

    I want this column trans_id trans_seq.nextval where trans_seq is a default sequence.

    I tried specifying the default value in the column attributes (expression of PL/SQL - trans_seq.nextval) which does not work.
    If I give in the SQL query, it throws an error saying that the unauthorized sequence here...

    My query is structured as follows:
    SELECT
    apex_item.display_and_save (4,c002) trans_id
    FROM
    apex_collections
    WHERE collection_name = 'TRANSACTIONS'
    UNION ALL
    SELECT
    apex_item.display_and_save (4,NULL)  as  trans_id
    FROM DUAL
         WHERE :request = 'ADD_ROW_MANUAL'
    Appreciate any help in this regard. I hope that my question is explained clearly

    Thanks in advance,
    Dippy

    Published by: Fisher on February 16, 2010 12:41

    Published by: Fisher on February 16, 2010 15:55

    Hello.

    1. create a function named next_value

    create or replace function next_value
    return number
    is
    ret_value number;
    begin
    select trans_seq.nextval into ret_value from dual;
    return ret_value;
    end;
    

    2 display the query as below

     SELECT
    apex_item.display_and_save (4,c002) trans_id
    FROM
    apex_collections
    WHERE collection_name = 'TRANSACTIONS'
    UNION ALL
    SELECT
    apex_item.display_and_save (4,next_value())  as  trans_id
    FROM DUAL
         WHERE :request = 'ADD_ROW_MANUAL'
    

    Kind regards
    Shijesh

  • to fill the gaps with value of lead and the delay and make average and the gap between earned

    Thanks in advance

    I have table as below
    ID          TYPE     NUM     NAME     BEG_MP     END_MP     VALUE
    10001103N     3     1190001     WST     0.000     0.220     
    10001103N     3     1190002     WST     0.220     0.440     
    10001103N     3     1190003     WST     0.440     0.820     12800
    10001103N     3     1190003     WST     0.820     1.180     12800
    10001103N     3     1190004     WST     1.180     1.220     
    10001103N     3     1190004     WST     1.220     1.300     
    10001103N     3     1190005     WST     1.300     1.420     14800
    10001103N     3     1190005     WST     1.420     1.550     14800
    10001103N     3     1190006     WST     1.550     2.030     
    10001103N     3     1190006     WST     2.030     2.660     
    10001103N     3     1190007     WST     2.660     2.780     
    What I need is to fill the gaps with value of lead and the delay and make average and the gap between the values
    ID          TYPE     NUM     NAME     BEG_MP     END_MP     VALUE
    10001103N     3     1190001     WST     0.000     0.220     12800 ---> Lag value
    10001103N     3     1190002     WST     0.220     0.440     12800 ---> Lag Value
    10001103N     3     1190003     WST     0.440     0.820     12800
    10001103N     3     1190003     WST     0.820     1.180     12800
    10001103N     3     1190004     WST     1.180     1.220     13800 ---> Avg(12800,14800)
    10001103N     3     1190004     WST     1.220     1.300     13800 ---> Avg(12800,14800)
    10001103N     3     1190005     WST     1.300     1.420     14800
    10001103N     3     1190005     WST     1.420     1.550     14800
    10001103N     3     1190006     WST     1.550     2.030     14800 ---> Lead Value
    10001103N     3     1190006     WST     2.030     2.660     14800 ---> Lead Value
    10001103N     3     1190007     WST     2.660     2.780     14800 ---> Lead Value
    create table AVG_TABLE
    (
      ID     VARCHAR2(20),
      TYPE   NUMBER,
      NUM    NUMBER,
      NAME   VARCHAR2(10),
      VALUE  NUMBER,
      BEG_MP NUMBER(6,3),
      END_MP NUMBER(6,3)
    )
    ;
    
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190001, 'WST', null, 0, .22);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190002, 'WST', null, .22, .44);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190003, 'WST', 12800, .44, .82);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190003, 'WST', 12800, .82, 1.18);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190004, 'WST', null, 1.18, 1.22);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190004, 'WST', null, 1.22, 1.3);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190005, 'WST', 14800, 1.3, 1.42);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190005, 'WST', 14800, 1.42, 1.55);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190006, 'WST', null, 1.55, 2.03);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190006, 'WST', null, 2.03, 2.66);
    insert into AVG_TABLE (ID, TYPE, NUM, NAME, VALUE, BEG_MP, END_MP)
    values ('10001103N', 3, 1190007, 'WST', null, 2.66, 2.78);
    commit;

    Hello

    Use LEAD and LAG when you know exactly how far is the target line (for example, if you know the desired value is on the next row).
    If you don't know exactly how far is the target line, then FIRST_VALUE and LAST_VALUE are more likely to be useful.

    WITH     got_neighbors     AS
    (
         SELECT     avg_table.*
         ,     LAST_VALUE (value IGNORE NULLS) OVER (ORDER BY beg_mp)          AS prev_value
         ,     LAST_VALUE (value IGNORE NULLS) OVER (ORDER BY beg_mp DESC)     AS next_value
         FROM     avg_table
    )
    SELECT       id, type, num, name, beg_mp, end_mp
    ,       COALESCE ( value
                 , ( NVL (prev_value, next_value)
                   + NVL (next_value, prev_value)
                   ) / 2
                 )     AS value
    FROM       got_neighbors
    ORDER BY  beg_mp to f
    ;
    

    Riedelme is correct: LAG LEAD (as well as FIRST_VALUE and LAST_VALUE) can return only the values that are there (or that you give as default values). This means that you can not solve this problem with these functions alone; you need something else (as NVL, above) to provide value when the function does not find it.

  • CHANGE the SEQUENCE on a busy server translates into very high unexpected values

    Our sequence was 782,393,232, or so, when I came it up through 30 000. Here are the commands I used:

    change the sequence of OUR_SEQ increment in 30000;
    Select double OUR_SEQ.nextval;
    change the sequence of OUR_SEQ increment in 1;
    commit;

    When I questioned nextval in the sequence, a few minutes later, he had climbed up to more 8 billion! I have reset quickly up to 783 million or more, and it behaved correctly after that. I saw some posts on the net that infer that the reset sequence is heavily used can cause "unpredictable." Everyone knows this or y at - it a bug known?

    I am running:

    Oracle Database 10 g Enterprise Edition Release 10.2.0.4.0 - 64 bit, RAC system.
    PL/SQL Release 10.2.0.4.0 - Production
    "CORE 10.2.0.4.0 Production."
    AMT for Linux: release 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production

    Sven,

    I'm not sure I understand what you're clarifying...

    In a CCR cluster, a sequence with a cache has a separate cache in each node of the cluster. If the cache has been set to 20 (the default), and the increase was set to 30,000, each node is hiding 20 values separated by 30 000. And caches would be overlapping (i.e. node A would get 20 values of 1-570 001, node B would get 20 600 001-1 170 001 values). I don't see that this is in contradiction with what I posted.

    Obviously, the presence of a cache creates a bit of a ride with when, exactly, you say that a sequence is incremented. The NEXT_VALUE in DBA_SEQUENCES is incremented by cache * interval when any node exhausts its cache. The NEXTVAL of a sequence for connections that hit a particular node will increase by interval every time another session gets the NEXTVAL of a sequence. The NEXTVAL of a sequence for connections on a different node is not affected by what is happening on the current node. What enlightenment do you? If so, I agree.

    user11300030,

    Discussion on the sequence of caching can provide insight into why none of the lines are between 780 million and 1 billion. It is quite possible that these values have been cached on one node other than the node where the pads were executed. Had caches was flushed not when change you the sequence, inserts run on these other nodes could have used this range values.

    Justin

Maybe you are looking for

  • Satellite A100 PSAA9C: How to do to record sound played by mixer

    I have a Satellite A100 PSAA9C TA902C. (This is my 5th Toshiba laptop) My last was able to do the following: play music written by an author of music, which is through the midi mixing table, and enroll as a wav by Blaze Audio. On the last machine, A2

  • Hard drive HP G62-234DX

    Hello, I recently bought a laptop HP G62-234DX from Best Buy that was on sale last week. Information can be found here: http://www.bestbuy.com/site/HP+-+Laptop+/+Intel%26%23174%3B+Core%26%23153%3B+i3+Processor+/+15.6%22+... I went to the store ran ou

  • The Witcher Enhanced Edition crashing after 10-15 minutes of play.

    I installed the witcher enhanced edition on my computer and when I play it works fine until it crashes randomly when I enter a new area or trying to save, or sometimes in general play. It is then back on the desktop with the message "the witcher has

  • a lot of fonts to print tax records, were not fast type II

    Yesterday, I could not print a copy of my tax files, then I called tax turbo and finally got a print.  He says that I do not have the correct font, which was fast type II or something like that, there were 7 or 8 missing.   Today when I watched them

  • Credit to Adobe Stock

    The credit of Adobe Stock of Adobe Max 2015 expire? If so, when?