2015-10-13 113 views
1

我想創建一個基於IF語句與多個條件和LEN加盟,我無法得到它的工作。如何使用IF(LEN在LEFT JOIN

SELECT 
    "Datafeed-WO"."Billing Cd" AS 'Billing Type',   
    IF(LEN("Datafeed-WO"."Zip") = 6, 'CDA', 'USA') AS 'Country', 
    "BudgetTbl"."BudYr" AS 'Budget Yr', 
    "BudgetTbl"."Budget" AS 'Group Budget' 

FROM "Datafeed-WO" 

LEFT JOIN "BudgetTbl" 
    ON (IF(LEN("Datafeed-WO"."Zip") = 6, 'CDA', 'USA') = "BudgetTbl"."Country") 
     AND ("Datafeed-WO"."Billing Cd" = "BudgetTbl"."Billing Cd") 

感謝任何幫助解決這個問題!

+0

那究竟是什麼問題? – Mureinik

+0

這是SQL服務器嗎? –

+0

'LEFT JOIN'BudgetTbl「 ON(IF(LEN(」Datafeed-WO「。」Zip「)= 6,'CDA','USA')=」BudgetTbl「。」Country「)'This does not look good。你想達到什麼目的? –

回答

0

您需要將所有引號('和')改爲反引號(`)並嘗試再次執行它 此後,不要在表和列中包含空格也很重要

希望這是你想要的:

select 
    dw.`Billing Cd` as `Billing_Type`,  
    if(len(dw.`Zip`) = 6, 'CDA', 'USA') as `Country`, 
    bt.`BudYr` as `Budget_Yr`, 
    bt.`Budget` as `Group_Budget` 
from `Datafeed-WO` dw 
left join `BudgetTbl` bt on (dw.`Billing Cd` = bt.`Billing Cd`) and ((len(dw.`Zip`) = 6 && bt.`Country` = 'CDA') || (len(dw.`Zip`) != 6 && bt.`Country` = 'USA'));