I am trying to build a beast mode that compares Quarter over Quarter.
This is the formula I am using but it keeps telling me Invalid Formula : This calculation contained a syntax error.
These are my headers:
The first part is how I got QTR Lbs. I would like to compare the differences Quarter over Quarter and then format it in percentage.
I am not sure what the error is.
(SUM((CASE WHEN ((YEAR(`StartDate`)=YEAR(CURRENT_DATE())) AND (QUARTER(`StartDate`)=QUARTER(CURRENT_DATE()))) THEN `LBS` ELSE 0 END )) and
(case
when right(`CurrentMonth`,2)0 = '1' then 'Q01'
when right(`CurrentMonth`,2)0 = '2' then 'Q01'
when right(`CurrentMonth`,2)0 = '3' then 'Q01'
when right(`CurrentMonth`,2)0 = '4' then 'Q02'
when right(`CurrentMonth`,2)0 = '5' then 'Q02'
when right(`CurrentMonth`,2)0 = '6' then 'Q02'
when right(`CurrentMonth`,2)0 = '7' then 'Q03'
when right(`CurrentMonth`,2)0 = '8' then 'Q03'
when right(`CurrentMonth`,2)0 = '9' then 'Q03'
when right(`CurrentMonth`,2)0 = '10' then 'Q04'
when right(`CurrentMonth`,2)0 = '11' then 'Q04'
when right(`CurrentMonth`,2)0 = '12' then 'Q04'
else 'Other' end))

(SUM((CASE WHEN ((YEAR(`StartDate`)=YEAR(CURRENT_DATE())) AND (QUARTER(`StartDate`)=QUARTER(CURRENT_DATE()))) THEN `LBS` ELSE 0 END )) and
(case
when right(`CurrentMonth`,2)0 = '1' then 'Q01'
when right(`CurrentMonth`,2)0 = '2' then 'Q01'
when right(`CurrentMonth`,2)0 = '3' then 'Q01'
when right(`CurrentMonth`,2)0 = '4' then 'Q02'
when right(`CurrentMonth`,2)0 = '5' then 'Q02'
when right(`CurrentMonth`,2)0 = '6' then 'Q02'
when right(`CurrentMonth`,2)0 = '7' then 'Q03'
when right(`CurrentMonth`,2)0 = '8' then 'Q03'
when right(`CurrentMonth`,2)0 = '9' then 'Q03'
when right(`CurrentMonth`,2)0 = '10' then 'Q04'
when right(`CurrentMonth`,2)0 = '11' then 'Q04'
when right(`CurrentMonth`,2)0 = '12' then 'Q04'
else 'Other' end))
/
(SUM((CASE WHEN ((YEAR(`StartDate`)=YEAR(CURRENT_DATE())) AND (QUARTER(`StartDate`)=QUARTER(CURRENT_DATE()))) THEN `LBS` ELSE 0 END )) and
(case
when right(`CurrentMonth`,2)0 = '1' then 'Q01'
when right(`CurrentMonth`,2)0 = '2' then 'Q01'
when right(`CurrentMonth`,2)0 = '3' then 'Q01'
when right(`CurrentMonth`,2)0 = '4' then 'Q02'
when right(`CurrentMonth`,2)0 = '5' then 'Q02'
when right(`CurrentMonth`,2)0 = '6' then 'Q02'
when right(`CurrentMonth`,2)0 = '7' then 'Q03'
when right(`CurrentMonth`,2)0 = '8' then 'Q03'
when right(`CurrentMonth`,2)0 = '9' then 'Q03'
when right(`CurrentMonth`,2)0 = '10' then 'Q04'
when right(`CurrentMonth`,2)0 = '11' then 'Q04'
when right(`CurrentMonth`,2)0 = '12' then 'Q04'
else 'Other' end))
Answers

Hi @Rvannoy
What is this section of code doing?
and (case when right(`CurrentMonth`,2)0 = '1' then 'Q01' when right(`CurrentMonth`,2)0 = '2' then 'Q01' when right(`CurrentMonth`,2)0 = '3' then 'Q01' when right(`CurrentMonth`,2)0 = '4' then 'Q02' when right(`CurrentMonth`,2)0 = '5' then 'Q02' when right(`CurrentMonth`,2)0 = '6' then 'Q02' when right(`CurrentMonth`,2)0 = '7' then 'Q03' when right(`CurrentMonth`,2)0 = '8' then 'Q03' when right(`CurrentMonth`,2)0 = '9' then 'Q03' when right(`CurrentMonth`,2)0 = '10' then 'Q04' when right(`CurrentMonth`,2)0 = '11' then 'Q04' when right(`CurrentMonth`,2)0 = '12' then 'Q04' else 'Other' end))
You're returning a string but not comparing it to anything and subtracting that value from a number. Can this section be removed?
Typically when I'm running into errors I'll take out sections of my beast mode until it works (or inversely start basic and keep adding to it to see when it errors). Domo beast mode errors aren't very helpful sadly.
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0 
It looks as though you are trying to sum the lbs field with the string values: Q01, Q02, etc. You can't sum string values. That is probably where you error is occurring.
**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.0 
That coding is telling it what quarter return (Q1, Q2, ect...).
I have tried it with and without this particular string. I will keep working at it.
0 
Right now, you have it coded as a string. If your datasets has columns called Q1, Q2, etc. then you could have those in your case statement, but you need to fix that in your statement so it is actually referencing those fields. If Q1, Q2 are calculations, you would need the actual calculation in your case statement.
**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.0 
To simplify your approach I'd recommend using a date offset dimension dataset and utilizing that to calculate period over period calculations. I did a whole writeup of it here: https://dojo.domo.com/discussion/53481/amoreflexiblewaytodoperiodoverperiodcomparisons#latest
If you would like to continue down your beast mode route I recommend breaking up your beast mode into the current value and the last year value and plot them on a table graph to make sure they're calculating correctly, if that's the case then go ahead and create a new beast mode to then drag and drop your current value and last quarter value beast modes in with the format:
( CURRENT  LAST ) / LAST
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0
Categories
 All Categories
 1.7K Product Ideas
 1.7K Ideas Exchange
 1.5K Connect
 1.2K Connectors
 292 Workbench
 4 Cloud Amplifier
 8 Federated
 2.8K Transform
 95 SQL DataFlows
 602 Datasets
 2.1K Magic ETL
 3.7K Visualize
 2.4K Charting
 695 Beast Mode
 43 App Studio
 39 Variables
 658 Automate
 170 Apps
 441 APIs & Domo Developer
 42 Workflows
 5 DomoAI
 32 Predict
 12 Jupyter Workspaces
 20 R & Python Tiles
 386 Distribute
 111 Domo Everywhere
 269 Scheduled Reports
 6 Software Integrations
 113 Manage
 110 Governance & Security
 8 Domo University
 30 Product Releases
 Community Forums
 39 Getting Started
 29 Community Member Introductions
 98 Community Announcements
 Domo Community Gallery
 4.8K Archive