Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> CASE in PL/SQL

CASE in PL/SQL

From: <Surendra.Tirumala_at_mail.state.ky.us>
Date: Wed, 02 Jul 2003 08:50:08 -0700
Message-ID: <F001.005BDFA9.20030702074919@fatcity.com>


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).
Received on Wed Jul 02 2003 - 10:50:08 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US