2013-04-03 5 views
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' 

Это мой запрос. Но я excecute этот запрос, я получил ошибку, чтоmysql ошибка запроса при использовании, если условие

#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

Изменить

... 
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

Существует разный синтаксис для 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)