Re: tricky SQL query (currently handled through PL/SQL)

From: Jetlag <jetlag11235_at_yahoo.com>
Date: 13 Jun 2003 08:17:09 -0700
Message-ID: <2eeed00e.0306130717.11817d99_at_posting.google.com>


One final update based on using the "partition by" clause of the analytic functions.

SELECT mn MY_NAME, mc MY_CODE, t_1, t_2
  FROM (

        SELECT mn, mc,
               decode(b, mc, sysdate+NULL, md) T_1,
               decode(a, mc, lead(md) over (
                             partition by mn order by md), md) T_2
          FROM (
                SELECT my_name MN, my_code MC, my_date MD,
                       nvl(lag(my_code) over (
                           partition by my_name order by my_date), -1) B,
                       nvl(lead(my_code) over (
                           partition by my_name order by my_date), -1) A
                  FROM my_table_v1
               )
         WHERE b != mc
            OR a != mc
       )

 WHERE t_1 IS NOT NULL
 ORDER BY mn, t_1;
  • jetlag --
Received on Fri Jun 13 2003 - 17:17:09 CEST

Original text of this message