我希望start dates
的所有員工的employee numbers
和start dates
等於最早的日期。如何制定這個SQL查詢?
我知道這是錯誤的。但只是寫作來展示我想要的東西。
SELECT start_date, employee_no
FROM [employees]
WHERE (start_date = MIN(start_date))
我希望start dates
的所有員工的employee numbers
和start dates
等於最早的日期。如何制定這個SQL查詢?
我知道這是錯誤的。但只是寫作來展示我想要的東西。
SELECT start_date, employee_no
FROM [employees]
WHERE (start_date = MIN(start_date))
您近距離了!
SELECT start_date, employee_no
FROM [employees]
WHERE start_date = (SELECT MIN(start_date) FROM employees)
這將做到這一點:
SELECT start_date, employee_no
FROM [employees]
WHERE start_date = (select MIN(start_date) from [employees])
SELECT start_date, employee_no
FROM [employees]
WHERE start_date = (SELECT MIN(start_date) FROM [employees])
我會使用一個公用表表達式(CTE)來做到這一點。這就像創建臨時表。
;with EmpInfo as
(
SELECT start_date, employee_no, MIN(start_date) OVER() as MinStartDate
FROM [employees]
)
SELECT start_date, employee_no FROM EmpInfo WHERE start_date = MinStartDate
這裏有一個微軟網頁約Using Common Table Expressions
+1與其他人做的不同! :) – FrustratedWithFormsDesigner 2010-11-03 21:06:16
根據執行計劃,性能稍好一些。我們有一個非常類似的員工數據表,所以我能夠輕鬆比較計劃。 :) – 2010-11-04 17:19:03
您鍵入只是更快了,全是你的 – DevelopingChris 2010-11-03 20:58:12
@DevelopingChris - 我只是複製和粘貼他並使其正確的! :) – JNK 2010-11-03 20:58:51
當你發佈時,肯定有我們5人輸入。 – DevelopingChris 2010-11-03 20:59:46