Ben BusinessDataDate düzenlediği verileri tutan SQL Server bir tablo var. BusinessDataDate yalnızca bir Tarihtir (zaman bileşeni yoktur) ve yalnızca İş günlerinde doldurulur. Örneğin. Hafta sonları veya resmi tatil günleri değil.SQL'de "sonraki ama bir yeni" tarihini bulmanın en iyi yolu nedir?
özel bir sıra buna olmadığından, ben bu sorgu çalışır date before the current max date
bulmak istiyorum, ve yerel değişkenlere değerler ayarlayabilirsiniz - ama daha temiz bir yolu olmalı gibi geliyor?
SELECT MAX(BusinessDataDate) FROM myTable
WHERE BusinessDataDate < (SELECT MAX(BusinessDataDate) FROM myTable)
Her tarih tablosunda birden fazla satır olacak - tam sayısı tahmin edilemez.
Kişisel yaklaşım gayet iyi. Yalnızca son x günlerde filtrelemek için hem ana hem de alt sorgu için bir ekleme cümlesi eklemek performansı artırabilir. –
Bunu deneyebilirim ... ancak Orta Doğu'da çalışmak, tahmin etmek için biraz belirsiz. Bayram 3-6 gün olabilir ve hafta sonları ile çakışırsa, o zaman etkili bir şekilde 10 günlük bir aralığa sahip olabilirsiniz. – BlueChippy