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 --