使用if条件时mysql查询错误

时间:2013-04-03 13:32:22

标签: mysql

 SELECT tu.begin_date, tm.MAGAZINE_ID,`MAGAZINE_NAME`, CASE WHEN ts.no_of_issues IS NULL THEN 1 ELSE ts.no_of_issues END AS Subscription_Type, 
 CASE WHEN 
   IF(tu.customer_currency = 'USD', 54 * tu.customer_currency) 
   ELSE IF(tu.customer_currency = 'CAD', 1.0250 * tu.customer_currency) 
   END AS sale_price_inr,
 tu.developer_proceeds as orginal_rate, tu.customer_currency as orginal_currency
 FROM `tbl_itunes_report` tu
 LEFT JOIN tbl_magazine_subscription ts ON ts.subscription_key = tu.sku_key
 LEFT JOIN tbl_magazine_issue ti ON ti.PurchaseKey = tu.sku_key AND ti.OS_SELECT = 0
 LEFT JOIN tbl_magazine tm ON tm.magazine_id = ts.magazine_id
 OR tm.magazine_id = ti.magazine_id
 WHERE `product_type_identifier` LIKE 'IA%'
 AND
 (
     ts.subscription_key IS NOT NULL
     OR ti.PurchaseKey IS NOT NULL
 )
 AND tu.begin_date >= '2012-04-01' AND tu.begin_date <= '2013-04-01'

这是我的查询。但我执行此查询时出现错误

 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ELSE IF(tu.customer_currency = 'CAD', 1.0250 * tu.customer_currency) END A' at line 3

如果有人知道这个,请帮助我。我是这个新手

提前致谢

2 个答案:

答案 0 :(得分:2)

更改

 ...
 CASE WHEN 
 IF(tu.customer_currency = 'USD', 54 * tu.customer_currency) 
 ELSE IF(tu.customer_currency = 'CAD', 1.0250 * tu.customer_currency) 
 END AS sale_price_inr
 ...

...
CASE WHEN tu.customer_currency = 'USD' THEN 54 * tu.customer_currency
     WHEN tu.customer_currency = 'CAD' THEN 1.0250 * tu.customer_currency 
 END AS sale_price_inr
...

答案 1 :(得分:1)

IF语句和IF函数有不同的语法,您使用IF语句的IF函数,请更改以下行

IF(tu.customer_currency = 'USD', 54 * tu.customer_currency) 
 ELSE IF(tu.customer_currency = 'CAD', 1.0250 * tu.customer_currency)

CASE WHEN tu.customer_currency = 'USD' THEN 54 * tu.customer_currency
     WHEN tu.customer_currency = 'CAD' THEN 1.0250 * tu.customer_currency 
 END AS sale_price_inr

OR

IF(tu.customer_currency = 'USD', 54 * tu.customer_currency, 1.0250 * tu.customer_currency)