2011-02-18 28 views
3

工作選擇AS不是在IB的工作

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff 
from Master 
where (bankcleared is not null) 
order by payeeid, DOW, DateDiff 

加入DateDiffWhere - 不工作

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff 
from Master 
where (bankcleared is not null) AND (DateDiff >= 1) 
order by payeeid, DOW, DateDiff 
+0

對不起,我還打算問....爲什麼加入則DateDiff到哪裏導致錯誤 - DateDiff列未知 – IElite 2011-02-18 13:56:15

回答

11

只能在GROUP BY,ORDER BY或HAVING子句中使用列別名。

標準SQL不允許引用WHERE子句中的列別名。這種限制是因爲在執行WHERE代碼時,列值可能還沒有確定。

試試這個

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff 
from Master 
where (bankcleared is not null) AND ((bankcleared - checkdate)>= 1) 
order by payeeid, DOW, DateDiff 

欲瞭解更多信息請通過這些鏈接

Can you use an alias in the WHERE clause in mysql?

Unknown Column In Where Clause

0
select payeeid, 
     EXTRACT(WEEKDAY FROM checkdate) as DOW, 
     (bankcleared - checkdate) as DateDiff 
from Master 
WHERE (bankcleared is not null) 
AND ((bankcleared - checkdate)>= 1) 
Order by payeeid, DOW, DateDiff