我確信這是一個簡單的修復方法,但我在任何地方都找不到它。我正在嘗試使用 AND 來影響查詢的結果。查詢如下。
select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff from table1 where log_in < date_opened;
所以第一個查詢工作正常。它只給我log_in日期小於date_opened的行,然後是兩者之間的總天數差異,這很棒。但是,我希望在查詢中新增 AND 以排除某些總計。例如下面的例子:
select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff from table1 where log_in < date_opened and date_diff > 1;
問題是別名列 date_diff 未被識別為真實列,因此我收到一條錯誤訊息。我嘗試使用 HAVING 而不是 AND,但這不起作用(不是我想像的那樣)。我基本上想排除零的行。有人知道我會用什麼來代替「and date_diff > 1」嗎?
P粉3080890802024-03-23 10:52:05
重複where 子句中的表達式(即使用datediff(log_in, date_opened) > 1
而不是date_diff > 1
),或使用衍生表,然後在封閉的查詢中新增條件。
使用衍生表格的範例:
select first_name, log_in, date_opened, date_diff from ( select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff from table1 where log_in < date_opened ) where date_diff > 1