Saya pasti ini adalah penyelesaian yang mudah tetapi saya tidak dapat menemuinya di mana-mana. Saya cuba menggunakan DAN untuk mempengaruhi hasil pertanyaan. Pertanyaannya adalah seperti berikut.
select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff from table1 where log_in < date_opened;
Jadi pertanyaan pertama berfungsi dengan baik. Ia hanya memberi saya baris di mana tarikh log_in adalah kurang daripada tarikh_dibuka dan kemudian jumlah perbezaan hari antara kedua-duanya, yang sangat bagus. Walau bagaimanapun, saya ingin menambah DAN pada pertanyaan untuk mengecualikan jumlah tertentu. Contohnya, contoh berikut:
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;
Masalahnya ialah lajur alias date_diff tidak dikenali sebagai lajur sebenar, jadi saya mendapat mesej ralat. Saya cuba menggunakan HAVING dan bukannya DAN, tetapi itu tidak berfungsi (bukan seperti yang saya fikirkan). Saya pada asasnya mahu mengecualikan baris dengan sifar. Adakah sesiapa tahu apa yang saya akan gunakan dan bukannya "dan date_diff > 1"?
Ulang ungkapan dalam klausa where (iaitu gunakan
datediff(log_in, date_opened) > 1
而不是date_diff > 1
), atau gunakan jadual terbitan dan kemudian tambahkan syarat dalam pertanyaan yang dilampirkan.Contoh menggunakan jadual terbitan: