Heim > Fragen und Antworten > Hauptteil
Ich bin mir sicher, dass das eine einfache Lösung ist, aber ich kann sie nirgends finden. Ich versuche, AND zu verwenden, um die Ergebnisse einer Abfrage zu beeinflussen. Die Abfrage lautet wie folgt.
select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff from table1 where log_in < date_opened;
Die erste Abfrage funktioniert also einwandfrei. Es werden mir nur Zeilen angezeigt, in denen das Anmeldedatum kleiner als das Öffnungsdatum ist, und dann die Gesamtdifferenz in Tagen zwischen den beiden, was großartig ist. Allerdings möchte ich der Abfrage AND hinzufügen, um bestimmte Summen auszuschließen. Zum Beispiel das folgende Beispiel:
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;
Das Problem ist, dass die Alias-Spalte date_diff nicht als echte Spalte erkannt wird und ich daher eine Fehlermeldung erhalte. Ich habe versucht, HAVING anstelle von AND zu verwenden, aber das funktioniert nicht (nicht das, was ich dachte). Grundsätzlich möchte ich Zeilen mit Nullen ausschließen. Weiß jemand, was ich anstelle von „and date_diff > 1“ verwenden würde?
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