Hello ALL,
I am trying to find quarter number from a given date . Here is the
description
Our Financial year runs from July thru June. So, Given any date between
these dates I need to find 3 quarters(9 months) from it.
July -Sep -> 1st Quarter
Oct -Dec -> 2nd Quarter
Jan -Mar -> 3rd Quarter
Apr -Jun -> 4th Quarter
I got this done using the following Select
select decode(to_char(add_months(sysdate,9),'Q'),
'1','3',
'2','4',
'3','1',
'4','2',
'')
Decode function is used to change calender quarter to our Quarter.
But I am unable to find the Year for that quarter.
I was using Case statement to solve my problem,as below
Select case when decode(to_char(add_months(sysdate,9),'Q'),
'1','3',
'2','4',
'3','1',
'4','2',
'') < 3
then to_number(to_char(main_rec.termination_date,''YYYY''))+1
else to_number(to_char(main_rec.termination_date,''YYYY''))
P.S The reason for <3 condition check in CASE Statement is, if a
sysdate+9months falls in next Financial year , I need to change Year
accordingly.
But,this works only in SQL, in Procedures, i cannot do this using CASE
Statement
Can anybody give some ideas on how to approach this?. I have to use this in
a cursor (not in the body of my procedure, so condition checking like "If
then else " after fetching year is not possible)
Any help would be greatly appreciated.
Thanks,
Surendra Tirumala
Database Administrator
Cabinet for Workforce Development
Commonwealth of Kentucky
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author:
INET: [EMAIL PROTECTED]
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).