One possibility that comes to mind is to write a really,
really long DECODE:

DECODE((SYSDATE - COL_DATE), 1, '30_days',
   2, '30_days', 3, '30_days', ... NULL) Days30

But there must be a better possibility. Perhaps use the SIGN
function:

DECODE ( SIGN((SYSDATE - COL_DATE)-30),
   -1, '30_DAYS', 0, '30_DAYS', NULL)

If the difference is 1-29, subtracting 30 will result in a
negative value, and SIGN will return -1. If the difference
is exactly 30, the subtraction will result in 0, and SIGN
will return 0. The only other possible return is 1, for
positive numbers, and I let the default (NULL) handle that
case.

My guess is that you could do something similar for your
second DECODE statement, though the math would get a bit
more complex. I'd have to think a bit longer to work up a
solution, but I'm optimistic that there is one.

Hope this helps.

Best regards,

Jonathan Gennick --- Brighten the corner where you are
http://Gennick.com * 906.387.1698 * mailto:[EMAIL PROTECTED]

Join the Oracle-article list and receive one
article on Oracle technologies per month by 
email. To join, visit http://four.pairlist.net/mailman/listinfo/oracle-article, 
or send email to [EMAIL PROTECTED] and 
include the word "subscribe" in either the subject or body.


Monday, August 4, 2003, 10:24:22 AM, you wrote:
DE> Hello Listers,

DE> I need some help please,
DE> I am trying to create a DECODE statement, on a date column and looks
DE> something like this, but does not work.
DE> SELECT   COL1,
DE>                 COL2,
DE>                 DECODE((SYSDATE - COL_DATE), <= 30, '30_days', NULL) Days30,
DE>                 DECODE((SYSDATE - COL_DATE), (between 31 and 60), '60 Days',
DE> NULL) Days60,
DE> .......
DE> .......
DE> FROM ACCOUNT_TBL
DE> WHERE COL = '0'

DE> Obviously, I have worked out that this can not be done. The problem is also
DE> that the server is 7.3.4 and I need to use the code in a view.
DE> Does anyone have any solutions/work arounds for this?
DE> Any help will be appraciated.

DE> TIA
DE> Denham Eva
DE> Oracle DBA

DE> 
_____________________________________________________________________________________
DE> This e-mail message has been scanned for Viruses and Content and cleared 
DE> by MailMarshal

DE> For more information please visit www.marshalsoftware.com
DE> 
_____________________________________________________________________________________

DE> 
#####################################################################################
DE> Note:
DE> This message is for the named person's use only.  It may contain confidential,
DE> proprietary or legally privileged information.  No confidentiality or privilege
DE> is waived or lost by any mistransmission.  If you receive this message in error,
DE> please immediately delete it and all copies of it from your system, destroy any
DE> hard copies of it and notify the sender.  You must not, directly or indirectly,
DE> use, disclose, distribute, print, or copy any part of this message if you are not
DE> the intended recipient. TFMC and any of its subsidiaries each reserve
DE> the right to monitor all e-mail communications through its networks.

DE> Any views expressed in this message are those of the individual sender, except 
where
DE> the message states otherwise and the sender is authorized to state them to be the
DE> views of any such entity.

DE> Thank You.
DE> -- 
DE> Please see the official ORACLE-L FAQ: http://www.orafaq.net

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Jonathan Gennick
  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).

Reply via email to