MySQL newbie question

user05784
user05784 Member
edited March 2023 in SQL DataFlows

I have a dataflow I've built in Magic ETL, and I want to add a new column using a conditional statement to return the value from one of 3 existing columns (doing this in Beast Mode prevents me from getting the correct aggregations, so I'm trying to add in the dataflow itself).

 

So I want to have Invoice Sales returned if >0, if not then return j_quote_ if >0, if not then return WP Price.  The Magic ETL dataflow basically looks like this, and I want to add the column in bold:

 

Job No_1J_JOB_STATUSInvoice SalesWP PriceJ_QUOTE_Total Job
123456JOB INVOICED. INVOICE# 123456782992.53021.0202992.5
123457JOB ENTERED 3400340
123458JOB CARD PRINTED 619662406240

 

This is the syntax I have in MySql, but I'm a newbie at SQL, and I'm sure I'm missing something simple.  Any suggestions are welcome:

 

 

mySQL.png 

 

Thanks!

 

Tagged:

Best Answer

  • Valiant
    Valiant Coach
    Answer ✓

    Here you go, this should do the trick.

     

    SELECT *,

       CASE WHEN `Invoice Sales` > 0 THEN `Invoice Sales`

                  WHEN `Invoice Sales` < 0 AND `J_QUOTE_` > 0 THEN `J_QUOTE_`

                  ELSE `WP Price`

       END AS 'Total Job'

    FROM sales_wp_quote_summarized_by_job

     

    Sincerely,

    ValiantSpur

     

    **Please mark "Accept as Solution" if this post solves your problem
    **Say "Thanks" by clicking the "heart" in the post that helped you.

Answers

  • Valiant
    Valiant Coach
    Answer ✓

    Here you go, this should do the trick.

     

    SELECT *,

       CASE WHEN `Invoice Sales` > 0 THEN `Invoice Sales`

                  WHEN `Invoice Sales` < 0 AND `J_QUOTE_` > 0 THEN `J_QUOTE_`

                  ELSE `WP Price`

       END AS 'Total Job'

    FROM sales_wp_quote_summarized_by_job

     

    Sincerely,

    ValiantSpur

     

    **Please mark "Accept as Solution" if this post solves your problem
    **Say "Thanks" by clicking the "heart" in the post that helped you.

  • Excellent.  Thanks.