Tôi có một bảng trong SQL Server chứa dữ liệu được tổ chức bởi BusinessDataDate. BusinessDataDate là ngày chỉ (không có thành phần thời gian) và chỉ được điền vào ngày làm việc. ví dụ. không phải cuối tuần hoặc ngày lễ.Whats cách tốt nhất để tìm ngày "tiếp theo nhưng mới nhất" trong SQL?
Vì không có thứ tự cụ thể để điều này, tôi muốn tìm date before the current max date
việc truy vấn này, và tôi có thể thiết lập các giá trị vào các biến địa phương - nhưng nó cảm thấy như có phải là một cách sạch hơn?
SELECT MAX(BusinessDataDate) FROM myTable
WHERE BusinessDataDate < (SELECT MAX(BusinessDataDate) FROM myTable)
Mỗi ngày sẽ có nhiều hàng trong bảng - số chính xác không thể dự đoán được.
Cách tiếp cận của bạn là tốt. Thêm mệnh đề where vào cả chính và truy vấn phụ để lọc chỉ trong x ngày qua có thể cải thiện hiệu suất. –
Tôi có thể thử rằng ... tuy nhiên, làm việc ở Trung Đông một chút mơ hồ của nó để đoán. Eid có thể là 3-6 ngày, và nếu nó trùng với những ngày cuối tuần thì bạn có thể có một khoảng thời gian 10 ngày. – BlueChippy