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>
WHERE t_1 IS NOT NULL
ORDER BY mn, t_1;
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 --
