I am trying case inside select query and want to use that data column is generated by that case in same query.
My query is :
select order_id , order_item_id , sku ,merchant_payable as "Value Get" ,
case when name like 'Rise%'
then amount-(((amount*12.14)/100)+ ((amount*3.08)/100) + 51.30)
when name like 'Masha%'
then amount-(((amount*9.10)/100)+ ((amount*3.08)/100) + 51.30)
when name like 'Bboy%'
then amount-(((amount*14.17)/100)+ ((amount*3.08)/100) + 51.30)
end as "Value Should Get" ,
"Value Should Get" - merchant_payable
from meta.paytm_payment as ppo
where
case when name like 'Rise%'
then amount-(((amount*12.14)/100)+ ((amount*3.08)/100) + 51.30)
when name like 'Masha%'
then amount-(((amount*9.10)/100)+ ((amount*3.08)/100) + 51.30)
when name like 'Bboy%'
then amount-(((amount*14.17)/100)+ ((amount*3.08)/100) + 51.30)
end > merchant_payable
order by order_created_at ;
You can DRY up the duplication of the projection with a
CTE
, and then use this in yourWHERE
predicate: