Beast Mode not calculating for Current Year to Date
I am stumped on this one...
I created a beast mode to calculate the number of rejections as a percentage of sales. Specific lines of data have reason codes to flag what type of transaction it is. So F, H, etc are specific type of rejection lines. The "0" is a normal sales transaction. The beast mode below calculates properly when the date range is set to "All Time" or "Previous Year". For some reason it does not calculate when it is set to "Current Year". I have checked my source data and the date is in the correct format. I am not seeing a reason it should not calculate for "Current Year" (2019).
(ABS(SUM(case when `Code` = 'F' then `quantity` end))
+
ABS(SUM(case when `Code` = 'H' then `quantity` end))
+
ABS(SUM(case when `Code` = 'I' then `quantity` end))
+
ABS(SUM(case when `Code` = 'J' then `quantity` end))
+
ABS(SUM(case when `Code` = 'T' then `quantity` end)))
/
(SUM(case when `Code` = 0 then `quantity` end))
Best Answer
-
Try adding some else 0 clauses to your case statments:
(ABS(SUM(case when `Code` = 'F' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'H' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'I' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'J' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'T' then `quantity` ELSE 0 end)))
/
(SUM(case when `Code` = 0 then `quantity` ELSE 0 end))Essentially, if you are missing any of these Codes for current year data, then this beastmode will stop calculating. By adding the "ELSE 0" you are giving the beastmode a way forward when the particular code does not exist in the dataset
2
Answers
-
Try adding some else 0 clauses to your case statments:
(ABS(SUM(case when `Code` = 'F' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'H' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'I' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'J' then `quantity` ELSE 0 end))
+
ABS(SUM(case when `Code` = 'T' then `quantity` ELSE 0 end)))
/
(SUM(case when `Code` = 0 then `quantity` ELSE 0 end))Essentially, if you are missing any of these Codes for current year data, then this beastmode will stop calculating. By adding the "ELSE 0" you are giving the beastmode a way forward when the particular code does not exist in the dataset
2 -
This worked. Thank you for the explanation. Good to know that the beast mode will stop calculating at any part of the formula once it does not find that data in the time frame of the data set. I assumed that the formula in total would never equal zero so I dropped the "else 0" off. I now know that is not the case. Thanks again.
0
Categories
- All Categories
- 2K Product Ideas
- 2K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 311 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 3.8K Transform
- 660 Datasets
- 117 SQL DataFlows
- 2.2K Magic ETL
- 816 Beast Mode
- 3.3K Visualize
- 2.5K Charting
- 84 App Studio
- 46 Variables
- 778 Automate
- 190 Apps
- 482 APIs & Domo Developer
- 83 Workflows
- 23 Code Engine
- 41 AI and Machine Learning
- 20 AI Chat
- 1 AI Playground
- 2 AI Projects and Models
- 18 Jupyter Workspaces
- 412 Distribute
- 120 Domo Everywhere
- 281 Scheduled Reports
- 11 Software Integrations
- 145 Manage
- 141 Governance & Security
- 8 Domo Community Gallery
- 48 Product Releases
- 12 Domo University
- 5.4K Community Forums
- 41 Getting Started
- 31 Community Member Introductions
- 115 Community Announcements
- 4.8K Archive