How to use case statements within Filter function in Magic ETL 2.0

Hi Team,

Trying to use case statements within filter function in the ETL 2.0. '


For instance, I want to only filter out records for specific dates for only specific people. However when I use the following formula :

case when member = 'John Doe' then date > '1/1/2021' ELSE NULL END


It filters out everything from the dataset. I even tried removing 'ELSE NULL' operand with no success. Any help will be appreciated


Best,

TJ

Best Answer

  • Ashleigh
    Ashleigh Coach
    Answer ✓

    It might be easier to do a formula by itself and then label each case as Keep or Remove and then do a filter on that field.

    So the formula tile would have something like "Filter Flag" and it could be like.

    case

    when member = 'person1' and date >'1/1/21' then 'remove'

    when member = 'person2' and date <'2/1/21' then 'remove'

    else 'Keep'

    end

    So basically you are listing all the cases you want removed and then everything else you keep.

    Then in the next tile filter when "Filter Flag' is Keep.

    **If this answer solved your problem be sure to like it and accept it as a solution!

Answers

  • Hi @tejusarora

    Have you tried it to just return a TRUE / FALSE statement instead of doing your CASE statement?

    member = 'John Doe' AND `date` >'1/1/2021'
    


    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • Ashleigh
    Ashleigh Coach
    Answer ✓

    It might be easier to do a formula by itself and then label each case as Keep or Remove and then do a filter on that field.

    So the formula tile would have something like "Filter Flag" and it could be like.

    case

    when member = 'person1' and date >'1/1/21' then 'remove'

    when member = 'person2' and date <'2/1/21' then 'remove'

    else 'Keep'

    end

    So basically you are listing all the cases you want removed and then everything else you keep.

    Then in the next tile filter when "Filter Flag' is Keep.

    **If this answer solved your problem be sure to like it and accept it as a solution!

  • @Ashleigh thanks for your response. This is what I finally ended up using. Was just curious if there was another way within filter :D

    @GrantSmith that will only keep john doe for '1/1/2021'