0
 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

如果有人知道这一点,请帮助我。我是新来的

提前致谢

4

2 回答 2

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
...
于 2013-04-03T13:35:58.190 回答
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

或者

IF(tu.customer_currency = 'USD', 54 * tu.customer_currency, 1.0250 * tu.customer_currency)
于 2013-04-03T13:38:44.793 回答