Если вы используете SQLServer , то проблема не только в вашем псевдониме, а в том, что вычитаете два столбца с типом даты. Также использование псевдонима, созданного в том же самом выборе, не хорошо. Также, если вы используете выражение T.firstdate, вам следует добавить заглавную букву T после имени таблицы.
В моем DEMO
- Вы можете видеть, что вычитаниедве даты приведут к ошибке (запрос 1 и query2 и запрос 3 из моей DEMO)
- Вы также можете увидеть, что произойдет, если вы не используете псевдоним таблицы T (запрос 4 из моей DEMO)
- И вы можете увидеть, что произойдет, если вы используете псевдоним в выбранном вами избранном (запрос 5 из моей демонстрационной версии)
Я считаю, что это то, что вам нужно, если вы используете SQL Server:
SELECT T.firstdate
, T.lastdate
, datediff(day, T.firstdate , T.lastdate) as Alias1
, case when (datediff(day, T.firstdate , T.lastdate )) > 15
then 'a'
else 'b'
end as Alias2
FROM Table1 T;
Вот пример этого правильного примера: DEMO .
Если вы используете ORACLE , тогда первый запрос будетхорошо, как в этом DEMO
SELECT T.firstdate
, T.lastdate
, (T.lastdate - T.firstdate) as ALIAS1
, case when (T.lastdate - T.firstdate) > 15 then 'a' else 'b' end as ALIAS2
FROM Table1 T;
Итак, вы видите, нам нужно знать, какую базу данных вы используете . :)