Can you subtract days based on case when statements?
Hello!
I have a case when statement that I need to subtract a certain amount of days based off of:
Case
when 'ID' = '1066' THEN `Maturity Date` - 45
when 'ID' = '1019' THEN `Maturity Date` - 55
when 'ID' = '2600' THEN `Maturity Date` - 66
when 'ID' = '2507' THEN `Maturity Date` - 70
when 'ID' = '1075' THEN `Maturity Date` - 75
when 'ID' = '2669' THEN `Maturity Date` - 85
ELSE `Maturity Date` - 60
END
This comes back as an error as it's trying to have the output be a floating decimal instead of a date.
Any assistance is greatly appreciated. (I'm still fairly new to using Domo)
Best Answer
-
You will want to use the DATE_SUB function to subtract days from a given date. It would look like this:
Case when 'ID' = '1066' THEN DATE_SUB(`Maturity Date`, INTERVAL 45 day) when 'ID' = '1019' THEN DATE_SUB(`Maturity Date`, INTERVAL 55 day) when 'ID' = '2600' THEN DATE_SUB(`Maturity Date`, INTERVAL 66 day) when 'ID' = '2507' THEN DATE_SUB(`Maturity Date`, INTERVAL 70 day) when 'ID' = '1075' THEN DATE_SUB(`Maturity Date`, INTERVAL 75 day) when 'ID' = '2669' THEN DATE_SUB(`Maturity Date`, INTERVAL 85 day) ELSE DATE_SUB(`Maturity Date`, INTERVAL 66 day) END
As far as returning a floating decimal instead of a date, I'm not sure what you would expect to be returned when you are wanting to subtract a number of days from a date.
**Check out my Domo Tips & Tricks Videos
**Make sure to any users posts that helped you.
**Please mark as accepted the ones who solved your issue.1
Answers
-
You will want to use the DATE_SUB function to subtract days from a given date. It would look like this:
Case when 'ID' = '1066' THEN DATE_SUB(`Maturity Date`, INTERVAL 45 day) when 'ID' = '1019' THEN DATE_SUB(`Maturity Date`, INTERVAL 55 day) when 'ID' = '2600' THEN DATE_SUB(`Maturity Date`, INTERVAL 66 day) when 'ID' = '2507' THEN DATE_SUB(`Maturity Date`, INTERVAL 70 day) when 'ID' = '1075' THEN DATE_SUB(`Maturity Date`, INTERVAL 75 day) when 'ID' = '2669' THEN DATE_SUB(`Maturity Date`, INTERVAL 85 day) ELSE DATE_SUB(`Maturity Date`, INTERVAL 66 day) END
As far as returning a floating decimal instead of a date, I'm not sure what you would expect to be returned when you are wanting to subtract a number of days from a date.
**Check out my Domo Tips & Tricks Videos
**Make sure to any users posts that helped you.
**Please mark as accepted the ones who solved your issue.1
Categories
- All Categories
- 1.8K Product Ideas
- 1.8K Ideas Exchange
- 1.6K Connect
- 1.2K Connectors
- 300 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 2.9K Transform
- 102 SQL DataFlows
- 626 Datasets
- 2.2K Magic ETL
- 3.9K Visualize
- 2.5K Charting
- 755 Beast Mode
- 61 App Studio
- 41 Variables
- 693 Automate
- 178 Apps
- 456 APIs & Domo Developer
- 49 Workflows
- 10 DomoAI
- 38 Predict
- 16 Jupyter Workspaces
- 22 R & Python Tiles
- 398 Distribute
- 115 Domo Everywhere
- 276 Scheduled Reports
- 7 Software Integrations
- 130 Manage
- 127 Governance & Security
- 8 Domo Community Gallery
- 38 Product Releases
- 11 Domo University
- 5.4K Community Forums
- 40 Getting Started
- 30 Community Member Introductions
- 110 Community Announcements
- 4.8K Archive