I just realised that the order will be in sequence. that made it better... this is what i have tried.. but still i am sure.. there can be a better one.. please suggest.
select case when MAX_ORD = MAX_ACTION_TAKEN then MIN_ACTION_NOT_TAKEN when MAX_ORD <> MAX_ACTION_TAKEN then MAX_ACTION_TAKEN + 1 when MAX_ACTION_TAKEN is null and NOT_TAKEN_ACTION > 0 then MIN_ACTION_NOT_TAKEN end as next_ord from ( select max(ORDER) max_ord, max(case when ACTION_flag = 'Y' then ORDER end) MAX_ACTION_TAKEN, SUM(case when ACTION_flag is null then 1 else 0 end) NOT_TAKEN_ACTION, min(case when ACTION_flag is null then ORDER end) MIN_ACTION_NOT_TAKEN FROM participants order by ORDER); On Thu, Feb 17, 2011 at 2:08 PM, gayathri Dev <gd0...@gmail.com> wrote: > Hi Avinash, > > it should pick 2 > > thanks > > On Thu, Feb 17, 2011 at 1:56 PM, Avinash Naidu <avisna...@gmail.com>wrote: > >> order action_flag >> 2 N >> 4 Y >> 6 N >> 7 N >> 8 Y >> should pick 2 or 6?? >> >> On Thu, Feb 17, 2011 at 1:31 PM, gayathri Dev <gd0...@gmail.com> wrote: >> >>> Hi all, >>> >>> I am seriously thinking I need a good teacher who can teach me analytical >>> functions. >>> But with a min time i have got to resolve the hurdle I have. >>> Below are the examples.. >>> basically I shld check the last order's action flag if it is Y, then I >>> shld pick the min order whose action_flag is N >>> else if the last order's action flag is N, then I shld pick the greatest >>> order who has taken action(action_flag = 'Y') >>> and choose the next order after him. >>> >>> order action_flag >>> 2 Y >>> 4 N >>> 6 N >>> 7 N >>> 8 Y >>> should pick 4 >>> >>> order action_flag >>> 2 Y >>> 4 N >>> 6 Y >>> 7 N >>> 8 N >>> should select 7 >>> >>> order action_flag >>> 2 N >>> 4 N >>> 6 N >>> 7 N >>> 8 N >>> should select 2 >>> >>> order action_flag >>> 2 N >>> 4 Y >>> 6 N >>> 7 N >>> 8 N >>> 12 Y >>> 14 N >>> 15 N >>> should select 14 >>> >>> Please help me building this query. >>> >>> Thanks in advance >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Oracle PL/SQL" group. >>> To post to this group, send email to Oracle-PLSQL@googlegroups.com >>> To unsubscribe from this group, send email to >>> oracle-plsql-unsubscr...@googlegroups.com >>> For more options, visit this group at >>> http://groups.google.com/group/Oracle-PLSQL?hl=en >> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Oracle PL/SQL" group. >> To post to this group, send email to Oracle-PLSQL@googlegroups.com >> To unsubscribe from this group, send email to >> oracle-plsql-unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/Oracle-PLSQL?hl=en > > > -- You received this message because you are subscribed to the Google Groups "Oracle PL/SQL" group. To post to this group, send email to Oracle-PLSQL@googlegroups.com To unsubscribe from this group, send email to oracle-plsql-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Oracle-PLSQL?hl=en