После запроса броскамиНеверное имя столбца в Select Statement
Недопустимое имя столбца WIP_Aging»
Запрос:
Select
ID, Assembly, Last_Accessed, DATEDIFF(day,Last_Accessed,GETDATE()) as WP_Aging
from
Details
where
WP_Aging >= 2
После запроса броскамиНеверное имя столбца в Select Statement
Недопустимое имя столбца WIP_Aging»
Запрос:
Select
ID, Assembly, Last_Accessed, DATEDIFF(day,Last_Accessed,GETDATE()) as WP_Aging
from
Details
where
WP_Aging >= 2
Если вы не создать КТР или Суб-Выбрать вы можете» t ссылайтесь на имя псевдонимы колонки (WP_Aging
). Вместо этого вы должны повторить выражение:
Select
ID,
Assembly,
Last_Accessed,
DATEDIFF(day, Last_Accessed, GETDATE()) as WP_Aging
from
Details
where
DATEDIFF(day, Last_Accessed, GETDATE()) >= 2
Вот версия CTE:
;with cteAging as
(
Select
ID,
Assembly,
Last_Accessed,
WP_Aging = DATEDIFF(day, Last_Accessed, GETDATE())
from
Details
)
select
ID,
Assembly,
Last_Accessed,
WP_Aging
from
cteAging
where
WP_Aging >= 2
Это сработало спасибо ... Но почему это произошло ??? – Vijay
Это способ работы двигателя. Предложение WHERE выполняется перед SELECT. Вы в основном «создали» столбец WP_aging во время SELECT. Если вы думаете об этом, это имеет смысл. Вы хотите уменьшить строки перед тем, как идти, и получить данные, которые хотите увидеть. Таким образом, он делает WHERE и сначала уменьшает набор.
Я что-то упустил? – Vijay
Вы не можете ссылаться на псевдоним столбца из списка столбцов в разделе 'WHERE', так как выражение' WHERE' разобрано перед списком столбцов –