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
如果有人知道这个,请帮助我。我是这个新手
提前致谢
答案 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)