这行代码是我的select语句的一个片段。
frdFreedays - DateDiff(dd,conReceiptToStock,GetDate()) As FreeDaysRemaining
以下是我的where子句
的摘录and frdFreedays - DateDiff(dd,conReceiptToStock,GetDate()) <= @intFreeDays
我的问题是如何引用FreeDaysRemaining列,以便将其与@ intFreeDays
进行比较
我正在寻找类似的东西
Freedays <= @intFreeDays
答案 0 :(得分:21)
除了ORDER BY
之外,您无法在任何地方引用别名。一种解决方法(除了重复表达式的明显可能性之外)是将它放在派生表中:
SELECT FreeDaysRemaining --, other columns
FROM
(
SELECT frdFreedays - DATEDIFF(DAY, conReceiptToStock, GETDATE()) AS FreeDaysRemaining
--, other columns
FROM ...
) AS x
WHERE FreeDaysRemaining <= @intFreeDays;
答案 1 :(得分:8)
除了Aaron的回答,您还可以使用公用表表达式:
;with cte_FreeDaysRemaining as
(
select
frdFreedays - DateDiff(dd,conReceiptToStock,GetDate()) As FreeDaysRemaining
--, more columns
from yourtable
)
select
FreeDaysRemaining
--, more columns
from cte_FreeDaysRemaining
where FreeDaysRemaining <= @intFreeDays