2015-10-15 87 views
0

我是一名SQL新手,只是試圖弄清楚這一點。SQL - 按AS結果劃分

,(
    ISNULL([era_project_data_analysis].annual_spend_after_implementation, 
     ISNULL([era_project_data_analysis].annual_spend_after_selection, 
      ISNULL([era_project_data_analysis].annual_spend_after_recommendations, 
       [era_project_data_analysis].estimated_annual_spend    
      ) 
     ) 
    )  
) AS [Annual Spend], 

我想這個結果來劃分子選擇這樣的:

[表] [annual_savings]/[年度支出作爲儲蓄%'

但年報。花費'作爲無效的列名稱? :(

+0

使用CTE。否則,你必須使用r重複你的表情。 – qxg

回答

0

除非[年度支出]的定義在子查詢中(作爲子查詢或者在數據庫支持它的情況下作爲CTE),否則不能通過名稱引用該字段,但必須再次使用相同的代碼

我也將使用聯合在嵌套的ISNULL的喜歡,除非你所期望的一些ISNULL之間的邊緣情況,併合併爲您的特定DB - 這是比較少見的, COALESCE(era_project_data_analysis].annual_spend_after_implementation, [era_project_data_analysis].annual_spend_after_selection, [era_project_data_analysis].annual_spend_after_recommendations, [era_project_data_analysis].estimated_annual_spend)

我會也使用Table alias's來避免上面的代碼看起來那麼糟糕。