I am trying to use a date range in a CASE expression:
SELECT *
FROM TableA
WHERE status = 3
AND (TRUNC (proc_date) <= SYSDATE
AND TRUNC (proc_date) >=
TRUNC (
CASE
WHEN (TO_CHAR (SYSDATE, 'd') = 1
OR TO_CHAR (SYSDATE, 'd') = 2)
THEN
select NEXT_DAY(TRUNC(SYSDATE), 'Friday') - 7 FROM DUAL
--SYSDATE - 3 -- If Sunday or Monday, go back to prev friday
ELSE
SYSDATE - 1 -- Tues thru Sat
END))
So want to limit proc_date to between today and yesterday, except that if today is Sunday or Monday I want to use last Friday.
In the statement above, I get the error "00936 missing expression" in the SELECT in the CASE.
What am I doing wrong?
4/8/20 - I uploaded an example TableA. If the query is run today, It should return 4 records. TableA.xlsx
”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.
-Mike Kapnisakis, Warner Bros
With your subscription - you'll gain access to our exclusive IT community of thousands of IT pros. You'll also be able to connect with highly specified Experts to get personalized solutions to your troubleshooting & research questions. It’s like crowd-sourced consulting.
We can't always guarantee that the perfect solution to your specific problem will be waiting for you. If you ask your own question - our Certified Experts will team up with you to help you get the answers you need.
Our certified Experts are CTOs, CISOs, and Technical Architects who answer questions, write articles, and produce videos on Experts Exchange. 99% of them have full time tech jobs - they volunteer their time to help other people in the technology industry learn and succeed.
We can't guarantee quick solutions - Experts Exchange isn't a help desk. We're a community of IT professionals committed to sharing knowledge. Our experts volunteer their time to help other people in the technology industry learn and succeed.
Our community of experts have been thoroughly vetted for their expertise and industry experience.