Solved

SQL query and if statement

Posted on 2014-03-03
9
424 Views
Last Modified: 2014-03-09
In my where statement I need to check two areas, if the first isn't populated, check the other.

if a.C_EFF_DT is NOT NULL then a.C_EFF_DT < date(current date - 6 months)
if a.C_EFF_DT is NULL then b.C_EFF_DT < date(current date - 6 months)

So basically if the first C_EFF_DT is null then check the second C_EFF_DT, if it has a date, then check it and don't worry about the second date.
0
Comment
Question by:Lee R Liddick Jr
9 Comments
 
LVL 22

Assisted Solution

by:plusone3055
plusone3055 earned 150 total points
ID: 39900421
<cfif a.C_EFF_DT is NOT NULL>
 a.C_EFF_DT < date(current date - 6 months)
<cfelse>
 a.C_EFF_DT is NULL then b.C_EFF_DT < date(current date - 6 months)
</cfif>
0
 
LVL 11

Assisted Solution

by:David Kroll
David Kroll earned 150 total points
ID: 39900424
case
  when a.C_EFF_DT is NOT NULL then a.C_EFF_DT < date(current date - 6 months)
  when a.C_EFF_DT is NULL then b.C_EFF_DT < date(current date - 6 months)
  else (a date if the above two are false)
end
0
 

Author Comment

by:Lee R Liddick Jr
ID: 39900465
I didn't want this in CF...I am doing this in SAS SQL.  The case end in the where statement didn't work.  It doesn't like the less than sign...the query gives an error in the log.
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Assisted Solution

by:Lee R Liddick Jr
Lee R Liddick Jr earned 0 total points
ID: 39901107
I figured it out myself, not even using 'if' or 'case' statements:
(
     a.c_eff_dt is NOT NULL
          AND a.c_eff_dt < date(current date - 6 months)
OR
     a.c_eff_dt is NULL
          AND b.c_eff_dt < date(current date - 6 months)
)
0
 

Author Comment

by:Lee R Liddick Jr
ID: 39902941
I've requested that this question be closed as follows:

Accepted answer: 0 points for leerljr68's comment #a39901107

for the following reason:

Accepting own comment since I figured it out myself with no assistance from the other expert comments.  Thank you.
0
 
LVL 52

Accepted Solution

by:
_agx_ earned 200 total points
ID: 39901518
FYI, always wrap statements that mix AND/OR in parenthesis. Otherwise you're leaving the order of evaluation up to the db, which may or may not be what you want:

(
     <!--- first condition --->
     ( a.c_eff_dt is NOT NULL AND a.c_eff_dt < date(current date - 6 months)  )
OR
     ( a.c_eff_dt is NULL AND b.c_eff_dt < date(current date - 6 months)  )
)
0
 

Author Comment

by:Lee R Liddick Jr
ID: 39902942
I'm awarding points to those who responded.
0
 

Author Closing Comment

by:Lee R Liddick Jr
ID: 39915665
Even though I answered my own question, I'm awarding points for taking the time to respond.  Thank you all.
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

APEX (Application Express) is used to develop a web application from Oracle. SQL Workshop is one of the tools that comes with Oracle APEX to query or modify the database objects or to make any changes to the structure.
Read about achieving the basic levels of HRIS security in the workplace.
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question