Comparing values in two consecutive rows?

Hello.
Can I compare the value of the same field in two consecutive rows?
If it is. How could I do it?
Thanks in advance

Hi,
You can use analytics like LAG/LEAD, but it would be helpful if you'd post an example.
Search and read the docs for examples @ http://tahiti.oracle.com
A search on this forum will give you some examples as well.

Similar Messages

  • Need to compare values in two columns of one table against values in two columns in another table

    Hi, as the title reads, I'm looking for an approach that will allow me to compare values in two columns of one table against values in two columns in another table.
    Say, for instance, here are my tables:
    Table1:
    Server,Login
    ABCDEF,JOHN
    ABCDEF,JANE
    FEDCBA,SEAN
    FEDCBA,SHAWN
    Table2:
    Server,Login
    ABCDEF,JOHN
    ABCDEF,JANE
    FEDCBA,SHAWN
    In comparing the two tables, I'd like my query to report the rows in table1 NOT found in table2. In this case, it'll be the 3rd row of table one:
    Server,Login
    FEDCBA,SEAN
    Thanks.

    create table Table1([Server] varchar(50), Login varchar(50))
    Insert into Table1 values ('ABCDEF','JOHN'),('ABCDEF','JANE'),('FEDCBA','SEAN'),('FEDCBA','SHAWN')
    create table Table2([Server] varchar(50), Login varchar(50))
    Insert into Table2 values ('ABCDEF','JOHN'),('ABCDEF','JANE'), ('FEDCBA','SHAWN')
    select [Server] ,Login from Table1
    Except
    select [Server] ,Login from Table2
    select [Server] ,Login from Table1 t1
    where not exists(Select 1 from Table2 where t1.[Server] = t1.[Server] AND Login=t1.Login)
    drop table Table1,Table2

  • Better approach for checking column values between two different rows

    My requirement is to find best Approach to find difference between column values of two different rows.Below I've mentioned two different
    approaches I'm thinking of,but I'd like to know is there any other better approach.
    version details
    SQL> SELECT *
      2  FROM V$VERSION;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
    PL/SQL Release 11.1.0.7.0 - Production
    CORE    11.1.0.7.0      Production
    TNS for Solaris: Version 11.1.0.7.0 - Production
    NLSRTL Version 11.1.0.7.0 - ProductionTable creation script
    CREATE TABLE R_DUMMY
       (CA_ID VARCHAR2(16) NOT NULL ENABLE,
         CA_VER_NUM NUMBER(4,2) NOT NULL ENABLE,
         BRWR_SHORT_NAME VARCHAR2(25 CHAR),
         sic_code     number,
         FAC_ID VARCHAR2(10) NOT NULL ENABLE
    / insert script
    insert into r_dummy (CA_ID, CA_VER_NUM, BRWR_SHORT_NAME, sic_code, FAC_ID)
    values ('CA2001/11/0002', 2.00, 'Nandu',1234, 'FA000008');
    insert into r_dummy (CA_ID, CA_VER_NUM, BRWR_SHORT_NAME, sic_code, FAC_ID)
    values ('CA2001/11/0002', 3.00, 'SHIJU',456, 'FA000008');Desired O/P :
    ca_id               fac_id          column_name          previous name          after_modification
    CA2001/11/0002          FA000008     BRWR_SHORT_NAME          Nandu               SHIJU
    CA2001/11/0002          FA000008     sic_code          1234               456My approach
    select      ca_id,fac_id,column_name,
         decode(column_name,'BRWR_SHORT_NAME',lg_brwr,lg_sic) previous_name ,
         decode(column_name,'BRWR_SHORT_NAME',ld_brwr,ld_sic) after_modification
    from
         select
                   case
                        when ld_brwr != lg_brwr then
                        'BRWR_SHORT_NAME'
                        when ld_brwr != lg_brwr then
                        'sic_code'
                   end
              ) column_name,ca_id,fac_id,lg_brwr,ld_brwr,ld_sic,lg_sic
         from     (
              select ca_id,fac_id,lag_brwr,ld_brwr,ld_sic,lag_sic
              from
                        Select      lead(brwr_short_name,1) over(partition by ca_id,fac_id) ld_brwr,
                             lag(brwr_short_name,1) over(partition by ca_id,fac_id) lg_brwr,
                             lead(sic_code,1) over(partition by ca_id,fac_id) ld_sic,
                             lag(sic_code,1) over(partition by ca_id,fac_id) lg_sic,
                             ca_id,fac_id
                        from r_dummy
              where (ld_brwr != lg_brwr or ld_sic != lg_sic)
    )2nd Approach :
    =============
    select      ca_id,fac_id,column_name,
         decode(column_name,'BRWR_SHORT_NAME',lg_brwr,lg_sic) previous_name ,
         decode(column_name,'BRWR_SHORT_NAME',ld_brwr,ld_sic) after_modification
    from
         select
                   case
                        when ld_brwr != lg_brwr then
                        'BRWR_SHORT_NAME'
                        when ld_brwr != lg_brwr then
                        'sic_code'
                   end
              ) column_name,ca_id,fac_id,lg_brwr,ld_brwr,ld_sic,lg_sic
         from     (
              select ca_id,fac_id,brwr_short_name,sic_code
              from
                        Select      ca_id,fac_id,brwr_short_name lg_brwr,sic_code lg_sic
                        from     r_dummy
                        where     ca_ver_num = '2.00'
                   )o,(
                        Select      ca_id,fac_id,brwr_short_name ld_brwr,sic_code ld_sic
                        from     r_dummy
                        where     ca_ver_num = '3.00'
                              )n
              where      0.ca_id = n.ca_id
                   and 0.fac_id = n.fac_id
                   and (ld_brwr != lg_brwr or ld_sic != lg_sic)
    )Hi Experts,
         I've provided sample data where I'm checking for just two columns viz brwr_short_name ,sic_code,but in real time
    I've to check for 8 more columns so please suggest me with a better approach.
    I appreciate your precious suggestions.

    Hi,
    Thanks for posting the CREATE TABLE and INSERT statements; that really helps!
    Here's one wa. Like your 2nd approach, this uses a self-join:
    WITH     got_r_num     AS
         SELECT  ca_id
         ,     ROW_NUMBER () OVER ( PARTITION BY  ca_id
                                   ,                    fac_id
                             ORDER BY        ca_ver_num
                                 )    AS r_num
         ,     brwr_short_name
         ,     TO_CHAR (sic_code)     AS sic_code
         ,     fac_id
    --     ,     ...     -- Other columns (using TO_CHAR if needed)
         FROM     r_dummy
    ,     unpivoted_data     AS
         SELECT     *
         FROM     got_r_num
         UNPIVOT     INCLUDE NULLS
              (    txt
              FOR  column_name IN ( brwr_short_name          AS 'BRWR_SHORT_NAME'
                            , sic_code               AS 'SIC_CODE'
    --                        , ...     -- Other columns
    SELECT       p.ca_id
    ,       p.fac_id
    ,       p.column_name
    ,       p.txt          AS previous_name
    ,       a.txt          AS after_modification
    FROM       unpivoted_data   p
    JOIN       unpivoted_data   a  ON  p.ca_id     = a.ca_id
                           AND p.fac_id     = a.fac_id
                         AND p.column_name     = a.column_name
                         AND p.r_num      = a.r_num - 1
                         AND p.txt || 'X' != a.txt || 'X'
    ORDER BY  a.r_num
    ;To include other columns, add them in the 2 places where I put the comment "Other columns".
    Ca_ver_num can have any values, not just 2.00 and 3.00.
    This will show cases where a value in one of the columns changed to NULL, or where NULL changed to a value.
    There ought to be a way to do this without a separate sub-query like got_r_num. According to the SQL Language manual, you can put expressions in the UPIVOT ... IN list, but when I tried
    ...     UNPIVOT     INCLUDE NULLS
              (    txt
              FOR  column_name IN ( brwr_short_name          AS 'BRWR_SHORT_NAME'
                                 , TO_CHAR (sic_code)     AS 'SIC_CODE'
              )I got the error "ORA_00917: missing comma" right after TO_CHAR. Perhaps someone else can show how to eliminate one of the sub-queries.

  • Opening and Closing values on two separate rows for an indvidual A/c?

    Hi / Salam To all SAP Members,
    I am creating a COGS report in which i need to show opening and closing values for a stock account in two separate rows. The tool i am using is report painter.
    What i need to know is how can the system identify between opening and closing values for that account? Which characteristic/s do i need to include in the rows? The table i am using is FAGLFLEXT.
    Please provide help.
    Regards,
    Mohammed Ali Khan.

    Resolved Issue.

  • How to compare value of two Combo Box

    I've two Combo Box(cbFirst & cbSecond). I want to compare the value that has been selected by the user and based on the result, output is displayed. In both Combo Box I've provided the value.
    Here is my code:
    var a:Number;
    var b:Number;
    function First(evt:Event):void{
        a = evt.target.value;
        trace(a);   
    cbFirst.addEventListener(Event.CHANGE, First);
    function Second(evt:Event):void{
        b = evt.target.value;
        trace(b);
    cbSecond.addEventListener(Event.CHANGE, Second);
    If (a > b){
         trace("a is greater")
    else
         trace(b is greater);
    The trace statement inside the functions are working fine and the correct value of a & b is printed. But the comparison in the if statement doesn't seem to work. Could you please help me out.

    there's a typo.  fix it or remove it:
    var a:Number;
    var b:Number;
    function First(evt:Event):void{
        a = evt.target.value;
    trace(a);
       compareF();
    cbFirst.addEventListener(Event.CHANGE, First);
    function Second(evt:Event):void{
        b = evt.target.value;
        trace(b);
    compareF()
    cbSecond.addEventListener(Event.CHANGE, Second);
    function compareF(){
    If (a > b){
         trace("a is greater")
    else
         trace(b is greater);

  • How to insert or update comparing values  with two or more table

    Hai All
    I have three or four table in my database.
    Table 1 Dailattend is the main table here i need to insert or update my data and the fieds are
    Emplcode number,attdate date, intime date,intrin date ,introut date, outtime date are the fields
    Table 2 acclempbarcode the fields are
    emplcode number ,barcode number ....etc
    so now my data is in text format and i have broke the date like this
    0011221100112200100320100815
    First 16 is barcode and next 8 is date and 4 is time and i have created a temp table and store the date and move to main table
    My problem is the main table dailattend has no barcode so when i am going to insert or update i need to check whether the barcode is match with the emplcode in the main table
    How can i write insert or update statement
    The data is like this
    00110022 is barcode,10-03-2010 is my date and 0815 is time so i need to insert into dailattend table so now i have emplcode in dailattend table so i need to compare the barcode belong the emplcode in the another table and i need to insert in the dailattend table
    Pls give me some solution with example
    Regards
    Srikkanth.M

    try somthing like this
    create table t1
    as
    select '0011221100112200' barcode,to_date('100320100815','ddmmyyyyhh24mi') dt
    from dual
      create table barcodetbl
      emplcode varchar2(2000)
      barcode varchar2(2000)
      datetime date
    merge into barcodetbl bc
    using( select  * from  t1) x
    on
    (bc.barcode = x.barcode)
    when matched
    then update
    set datetime = x.dt
    when not matched
    then
    insert (emplcode,barcode,datetime)
    values(1,x.barcode,x.dt)
    /didn't realize that barcode is not in the main table.
    something along the lines
    Table 1 Dailattend is the main table here i need to insert or update my data and the fieds are
    Emplcode number,attdate date, intime date,intrin date ,introut date, outtime date are the fields
    Table 2 acclempbarcode the fields are
    emplcode number ,barcode number ....etc
    merge into dailattend bc
    using( select  * from  t1, acclempbarcode ac where t1.barcode = ac.barcode) x
    on
    (bc.emplcode = x.emplcode)
    when matched
    then update
    set datetime = x.dt
    when not matched
    then
    insert (emplcode,datetime)
    values(1,x.dt)
    /Alvinder
    Edited by: alvinder on Mar 23, 2010 3:50 PM

  • Taking the difference between two consecutive rows of a table

    My table structure with value is as follows:
    time      parameter     value
    16:00     STS     10
    17:00     STS     20
    18:00     STS     45
    Now with a single select query I want to retreive the value as follows :
    time_difference para_value_difference
    1 10 (difference between 20 and 10)
    1 25 (difference between 45 and 20))
    is it possible ? if yes then plz give me the answer ....its urgent.....

    SQL> create table mytable
      2  as
      3  select to_date('16:00','hh24:mi') time, 'STS' parameter, 10 value from dual union all
      4  select to_date('17:00','hh24:mi'), 'STS', 20 from dual union all
      5  select to_date('18:00','hh24:mi'), 'STS', 45 from dual
      6  /
    Tabel is aangemaakt.
    SQL> select (time - prev_time) * 24 time_difference_in_hours
      2       , value - prev_value value_difference
      3    from ( select t.*
      4                , lag(value) over (order by time) prev_value
      5                , lag(time) over (order by time) prev_time
      6             from mytable t
      7         )
      8   where prev_time is not null
      9  /
                  TIME_DIFFERENCE_IN_HOURS                       VALUE_DIFFERENCE
                                         1                                     10
                                         1                                     25
    2 rijen zijn geselecteerd.Regards,
    Rob.

  • Calculate date differences in consecutive rows and generate a sequence

    Hi Guys,
    I am trying to implement one scenario where in i need to compare the date differences for consecutive rows and generate a sequence against that.
    this is the table schema:
    create table temp
    id int identity(1,1),
    emp_id int,
    time datetime
    insert into temp 
    values
    (1, '2011-02-20 12:30:00.000'),
    (1, '2011-02-20 12:32:34.172'),
    (1, '2011-02-20 12:32:34.172'),
    (1, '2011-02-20 12:43:21.004'),
    (1, '2011-02-20 12:46:39.745'),
    (2, '2011-02-20 12:48:06.004'),
    (2, '2011-02-20 12:48:06.004'),
    (2, '2011-02-20 12:53:07.733'),
    (2, '2011-02-20 12:55:30.295');
    now, I want to compare the first date-time with the second and so on. now if the date-time difference is same for two consecutive rows then the sequence should  increment by 1 otherwise the sequence again will start from '00' for any unique date-time.
    This sequence number should start from '00' from each employee.
    I want the output to be like this
    ID emp_id
    time    
    sequence
    1 1 2011-02-20 12:30:00.000
    00
    2  1 2011-02-20 12:32:34.172
    00
    3  1 2011-02-20 12:32:34.172
    01
    4  1 2011-02-20 12:32:34.172
    02
    5  1 2011-02-20 12:46:39.745
    00
    6  2 
    2011-02-20 12:48:06.004 00
    7  2 
    2011-02-20 12:48:07.003 00
    8  2 
    2011-02-20 12:48:07.003 01
    9  2 
    2011-02-20 12:46:39.745 00
    Please revert as soon as possible as this is a bit urgent.
    Thank You in Advance. :)

    create table temp
    (id int identity(1,1),
     emp_id int,
     time datetime
    insert into temp values
    (1, '20110220 12:30:00.000'),
    (1, '20110220 12:32:34.172'),
    (1, '20110220 12:32:34.172'),
    (1, '20110220 12:43:21.004'),
    (1, '20110220 12:46:39.745'),
    (2, '20110220 12:48:06.004'),
    (2, '20110220 12:48:06.004'),
    (2, '20110220 12:53:07.733'),
    (2, '20110220 12:55:30.295');
    go
    SELECT id, emp_id, time,
           dateadd(mcs, (row_number() OVER(PARTITION BY emp_id, time ORDER BY
    id) - 1) * 10,
                   convert(datetime2(5), time)) AS [Sequence]
    FROM   temp
    ORDER  BY id
    go
    DROP TABLE temp
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Comparing values in different tables

    Hi,
    I am trying to compare values in two different table fields, can someone advise me of the ABAP to do it.
    I need to find IHPA-PARNR(partner number) in table T527X-ORGEH(org unit number)
    Thanks,
    Alec

    OK now I'm confused:
    I put a breakpoint as follows:
    SELECT * FROM t527x INTO TABLE it_t527x.                        
    LOOP AT it_ihpa INTO wa_ihpa.                                   
    READ TABLE it_t527x INTO wa_t527x WITH KEY orgeh = wa_ihpa-parnr
    BINARY SEARCH.                                                  
    IF sy-subrc EQ 0.                                               
    BREAK-POINT.                                                    
    WRITE: wa_t527X-ORGTX TO ZORGUNITTEXT.                          
    ELSE.                                                           
    WRITE: 'Damn it' TO ZORGUNITTEXT.                               
    ENDIF.                                                          
    ENDLOOP.          
    I have the correct values in the correct fields but still SUBRC does not = 0
    WA_T527X-ORGTX                 Stockton - Front of House      
    ZORGUNITTEXT                   Damn it                        
    WA_t527X-ORGEH                 20008855                       
    WA_IHPA-parnr                  20008855                       
    Whats Wrong?
    Edited by: Alec Fletcher on Dec 19, 2008 1:50 PM

  • Comparing row values in two different tables

    Hello,
    Does anyone know if it is possible to compare (and possibly highlight - which I know can be done) row values in two different tables?
    I have a ZIP Code column in table A that I want to compare to a ZIP Code column in table B and highlight those ZIP Codes that are present in table B but not in table A etc. Is this possible?
    Thanks,
    Kenneth

    To be able to apply conditional formatting, I must edit the formulas this way.
    =IF(ISBLANK(B)," ",IF(ISERROR(VLOOKUP(B,Tableau 2 :: B,1,0))," ",VLOOKUP(B,Tableau 2 :: B,1,0)))
    =IF(ISBLANK(B)," ",IF(ISERROR(VLOOKUP(B,Tableau 1 :: B,1,0))," ",VLOOKUP(B,Tableau 1 :: B,1,0)))
    I replaces the four empty strings by strings containing one space character.
    In the field supposed to contain the text which is not contained I just entered a single space character.
    Yvan KOENIG (from FRANCE vendredi 12 septembre 2008 20:52:11)

  • Compare Consecutive Rows in a table

    Hi,
    I want to compare consecutive rows for each employee. I need to compare SchedulEnd column of the first row with the ScheduleStart of the second row as so on. if both the values are same then i need to generate a sequence like 00 for the first record 01 for
    the second record and so on. if the time is not same the the sequence should start with 00.
    Example: lets say the data is like:
    schedule start
    schedule end
    10
      11
    11
    12
    12
    13
    15
    18
    the output should be like
    sequence 
    00
    01
    02
    00

    Thank you very much for the quick reply.
    I have one more scenario now, with the same data, i want the output like this
    <table>
    <tr>
    <th>Employee</th>
    <th>Schedule Time</th>
    <th>sequence</th>
    <th>Remarks</th>
    </tr>
    <tr>
    <td>1</td>
    <td>10</td>
    <td>00</td>
    <td>sequence "00" as schedule time is unique, 10 is the schedule start time</td>
    </tr>
    <tr>
    <td>1</td>
    <td>11</td>
    <td>00</td>
    <td>sequence "00" as schedule time is unique, 11 is the schedule end time for the first record</td>
    </tr>
    <tr>
    <td>1</td>
    <td>11</td>
    <td>01</td>
    <td>sequence "01" as schedule time is unique, 11 is the schedule start time of the next record</td>
    </tr>
    <tr>
    <td>1</td>
    <td>12</td>
    <td>00</td>
    <td>sequence "00" as schedule time is unique, 12 is the schedule end time of the previous record</td>
    </tr>
    <tr>
    <td>1</td>
    <td>12</td>
    <td>01</td>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    </table>

  • Grouping consecutive rows with same value?

    Hi
    I have a table in which three columns are:
    ROWID  SHOPNAME
    1      SHOP_C     
    2      SHOP_A     
    3      SHOP_C     
    4      SHOP_C     
    5      SHOP_A     
    6      SHOP_A     
    7      SHOP_C     
    8      SHOP_B     
    9      SHOP_B     
    10     SHOP_E    
    11     SHOP_A     
    12     SHOP_D     
    13     SHOP_D     
    14     SHOP_F     
    15     SHOP_G     
    16     SHOP_F     
    17     SHOP_C     
    18     SHOP_C     
    19     SHOP_C     
    20     SHOP_C      Rowid is a primary key column with unique ids
    Shopname is varchar2 column
    I want to make groupings of every "shopname" value "order by ROWID" such that when there are consecutive rows of same shopname the group remains same and as soon as there is different value in shopname column for the next row the "group" changes.
    below is my desired output is with 3rd column of groupings as follows:
    ROWID  SHOPNAME    Groups
    1      SHOP_C      1
    2      SHOP_A      2
    3      SHOP_C      3 ------> same grouping because Shop name is same
    4      SHOP_C      3 ------> same grouping because shop name is same
    5      SHOP_A      4 ----> different shopname so group changed.
    6      SHOP_A      4 ----> same group as above because shopname is same
    7      SHOP_C      5
    8      SHOP_B      6
    9      SHOP_B      6
    10     SHOP_E      7
    11     SHOP_A      8
    12     SHOP_D      9
    13     SHOP_D      9
    14     SHOP_F      10
    15     SHOP_G      11
    16     SHOP_F      12
    17     SHOP_C      13
    18     SHOP_C      13
    19     SHOP_C      13
    20     SHOP_C      13I want that to be done via analytics, so that I can partition by clause for different shops over different cities
    regards
    Ramis.

    with data(row_id, shop) as
    select 1,      'SHOP_C' from dual union all
    select 2,      'SHOP_A' from dual union all     
    select 3,      'SHOP_C' from dual union all
    select 4,      'SHOP_C' from dual union all    
    select 5,      'SHOP_A' from dual union all     
    select 6,      'SHOP_A' from dual union all
    select 7,      'SHOP_C' from dual union all
    select 8,      'SHOP_B' from dual union all
    select 9,      'SHOP_B' from dual union all
    select 10,     'SHOP_E' from dual union all
    select 11,     'SHOP_A' from dual union all
    select 12,     'SHOP_D' from dual union all
    select 13,     'SHOP_D' from dual union all
    select 14,     'SHOP_F' from dual union all
    select 15,     'SHOP_G' from dual union all
    select 16,     'SHOP_F' from dual union all
    select 17,     'SHOP_C' from dual union all
    select 18,     'SHOP_C' from dual union all
    select 19,     'SHOP_C' from dual union all
    select 20,     'SHOP_C' from dual
    get_data as
      select row_id, shop,
             lag(shop) over (order by row_id) prev_shop
        from data
    select row_id, shop,
           sum(case when shop = prev_shop
                      then  0
                      else 1
                      end
                ) over (order by row_id) grps
      from get_data;
    ROW_ID SHOP   GRPS
         1 SHOP_C    1
         2 SHOP_A    2
         3 SHOP_C    3
         4 SHOP_C    3
         5 SHOP_A    4
         6 SHOP_A    4
         7 SHOP_C    5
         8 SHOP_B    6
         9 SHOP_B    6
        10 SHOP_E    7
        11 SHOP_A    8
        12 SHOP_D    9
        13 SHOP_D    9
        14 SHOP_F   10
        15 SHOP_G   11
        16 SHOP_F   12
        17 SHOP_C   13
        18 SHOP_C   13
        19 SHOP_C   13
        20 SHOP_C   13
    20 rows selected

  • Compare values in different rows for date/time clashing

    Hello,
    Odd one this so bear with me...
    If I'm asking this question in the wrong place I apologise in advance
    I'm building a C# application that queries SQL tables, one of the functions I need to be able to implement is the ability to query a row(1) for it's datetime value, and disallow another rows(2) datetime value to be updated if the value of that row(2) is
    within an hour of the other row(1).
    I hope that makes sense...
    Any help will be greatly appreciated!
    Thanks
    Brendan

    Hello,
    Thanks for your reply.
    Would there be another way to do this?
    If there was some way to do this:
    UPDATE table SET 'column' VALUES '02/02/2015 14:00' WHERE Date = 02/02/2015 IF 'Column' = 02/02/2015 14:00 OR 02/02/2015 13:00 DENY
    I know that's not a proper statement, but you get the idea.
    The problem is that the datetime value is likely to change a lot, and I would like to avoid having to change this manually, but if I could somehow check for a datetime value with an hour either side of the update value that would be great.
    Thanks
    Brendan 

  • Query help - Fetch employees working on two consecutive weekends(SAT/SUN)

    Hello Gurus,
    I have the following requirement and i need your help on this.
    We have a table with all employees effort logged in for the days they have worked. a sample data is given below
    TD_date     Emp_id     Effort     Archive_month
    2-Mar-13     123     8     Mar-13
    9-Mar-13     123     8     Mar-13
    2-Mar-13     213     4     Mar-13
    3-Mar-13     213     4     Mar-13
    24-Mar-13     213     8     Mar-13
    9-Mar-13     312     4     Mar-13
    10-Mar-13     312     4     Mar-13
    16-Mar-13     312     8     Mar-13
    In the above sample data, we have employee 123 who worked on consecutive SATURDAY and 312 who worked on consecutive weekends (9th, 10th and 16th March) but the employee 213 worked on 1st weekend and 4th weekend of the month(Archive_month). So the output should return the employees who worked on two consecutive weekends as below.
    Emp_id
    123
    312
    I have written a query to fetch all employees who worked only on a SAT or SUN which is given below, but i am not able to return the employees who worked on consecutive weekends and i need your help.
    select emp_id, count(*)
    from timesheet_archive
    where archive_month = '03/2013'
    and trim(to_char(td_date,'DAY')) in ('SATURDAY','SUNDAY')
    group by emp_id having count(*) > 1
    order by td_date desc
    Please help me with an approach in SQL or PL/SQL to generate a report of employees who worked on two consecutive weekends.
    Thanks,
    Edited by: 999145 on Apr 9, 2013 11:08 PM
    Edited by: 999145 on Apr 9, 2013 11:10 PM

    hi Manik,
    thanks for your response!!
    Please find the below create and insert scripts for your testing.
    I am also validating the output with my requirement. Thanks for your help!
    create table timesheet_archive as
    (TD_date date,
    Emp_id number(19,0),
    Effort Float,
    Archive_month varchar2);
    insert into timesheet_archive values (to_date('2-MAR-2013','dd-MON-yyyy'), 123,8,'03/2013');
    insert into timesheet_archive values (to_date('9-MAR-2013','dd-MON-yyyy'), 123,8,'03/2013');
    insert into timesheet_archive values (to_date('2-MAR-2013','dd-MON-yyyy'), 213,4,'03/2013');
    insert into timesheet_archive values (to_date('3-MAR-2013','dd-MON-yyyy'), 213,4,'03/2013');
    insert into timesheet_archive values (to_date('24-MAR-2013','dd-MON-yyyy'), 213,8,'03/2013');
    insert into timesheet_archive values (to_date('9-MAR-2013','dd-MON-yyyy'), 321,4,'03/2013');
    insert into timesheet_archive values (to_date('10-MAR-2013','dd-MON-yyyy'), 321,4,'03/2013');
    insert into timesheet_archive values (to_date('16-MAR-2013','dd-MON-yyyy'), 321,8,'03/2013');
    insert into timesheet_archive values (to_date('2-MAR-2013','dd-MON-yyyy'), 124,8,'03/2013');
    insert into timesheet_archive values (to_date('9-MAR-2013','dd-MON-yyyy'), 124,8,'03/2013');
    insert into timesheet_archive values (to_date('16-MAR-2013','dd-MON-yyyy'), 124,4,'03/2013');
    insert into timesheet_archive values (to_date('23-MAR-2013','dd-MON-yyyy'), 124,4,'03/2013');
    insert into timesheet_archive values (to_date('16-MAR-2013','dd-MON-yyyy'), 241,8,'03/2013');
    insert into timesheet_archive values (to_date('23-MAR-2013','dd-MON-yyyy'), 241,4,'03/2013');
    insert into timesheet_archive values (to_date('24-MAR-2013','dd-MON-yyyy'), 241,4,'03/2013');
    insert into timesheet_archive values (to_date('2-MAR-2013','dd-MON-yyyy'), 412,8,'03/2013');
    insert into timesheet_archive values (to_date('3-MAR-2013','dd-MON-yyyy'), 412,8,'03/2013');
    insert into timesheet_archive values (to_date('30-MAR-2013','dd-MON-yyyy'), 412,8,'03/2013');
    insert into timesheet_archive values (to_date('31-MAR-2013','dd-MON-yyyy'), 412,8,'03/2013');

  • How to use bind variable value of one VO as initial value for other VO row?

    JDeveloper 10.1.3.3, ADF Faces, ADF BC
    Hi,
    I have two View Objects: one read only with several bound variables and another editable entity based. Correspondingly there are two ADF Faces pages: first contains search form based on the read-only VO and second create form based on the editable VO. The search form has several hidden fields for some of bound variables because they aren't edited directly by user. These fields are updated with PPR when user selects other search criteria from LOV.
    There is a command button in the first page that navigates to the second form. Is there any way to transfer values of bound variables from the first VO to the second VO as initial values of the new row?
    I tried to set custom controller for the second page and retrieve search criteria values from request parameter map but values from hidden fields are missing. I think because that these fields are updated by PPR. Of course I can add custom action method to the navigation button and in the method put these values to request parameter map but I hope there is better solution.
    Thanks,
    Marius

    To summarize, given a bind variable value for one VO, on creating a row in a second VO, for 1 of the attributes of the second VO, you want to use the first VO's bind variable value. Correct?
    A potential solution ADF BC driven:
    1) Ensure you have an AppModuleImpl for your AM
    2) Ensure you have a ViewImpl for your 1st VO (where the bind variable will exist) - lets refer to that VO as "Alpha"
    3) Ensure you have a ViewRowImpl for your 2nd VO (the one you want to default the value in) - lets refer to that VO as "Beta"
    4) For your first VO "Alpha" create the bind variable (say pValue)
    5) In your second VO "Beta" ViewRomImpl add following code:
    @Override
    protected void create(AttributeList attributeList) {
      super.create(attributeList);
      AppModuleImpl am = (AppModuleImpl)this.getApplicationModule();
      String someValue = am.getAlphaView1().getpValue();
      setSecondVOAttr(someValue); // change this code to whatever your setter is for the field you want to initialize.
    }Hope this helps. Let us know how you go.
    Regards,
    CM.

Maybe you are looking for

  • Thunderbolt Display suddenly no longer recognized by my MBA

    I have been using the thunderbolt display with my Mid 2011 Macbook Air (13inch).  Everything worked fine. Now suddenly when I plug in the monitor the macbook does not recognize it.  In System Information:Thunderbolt it says it is not connected to any

  • Operation wise costing

    How to track operation wise costing during confirmation. i.e, how to findout the cost involved related to raw material , labour,overhead costs etc for each operation wise.

  • Getting data from a web site

    I have a device that has a built in web server that I need to write a LV program for I need to read the date the web server is producing and compare it to actcual measured data. Now the measureing and comparing is easy but I don't know how to make LV

  • Airport Extreme & Express both wired, but one network?

    Ok, I looked to see if this was answered but I wasn't very sure what to search for. If this has been answered please point me in the right direction. I have an Airport Extreme Base Station that broadcasts my wireless network and is the router for my

  • Multiple identical SSD firmware updates

    Helllo, My system is updating anormally the SSD firmware. Already 4 times "MacBook Air Flash Storage Firmware Update" in version 1.0. The SSD is a Toshiba (TS128E) on a MacBook Air 2012 running Moutain Lion.