2015-10-15 3 views
0

Я новичок SQL, просто пытающийся понять это.SQL - Divide by 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]/[Годовой Проводят] AS 'Сберегательный%'

Но «Ежегодный. Использовать как недопустимое имя столбца? :(

+0

использовать CTE. В противном случае вам нужно r повторите свое выражение. – qxg

ответ

0

Если это определение [Annual Spend] находится в дополнительном запросе (либо в качестве подзапроса, либо в качестве CTE, если его поддерживает БД), вы не можете ссылаться на это поле по имени, но оно должно использовать один и тот же код снова

Я хотел бы также использовать срастаться над вложенными IsNull как, что, если вы не ожидали некоторые крайние случаи между ISNULL и сливаться для конкретной БД -., которые являются относительно редкими, 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 Table, чтобы избежать ухудшения кода выше.

Смежные вопросы