sql-server-2008-r2 - 在 SQL Server 2008 R2中,如果特定日期不存在數據,那麼如何選擇以前和非常接近給定日期的日期

  显示原文与译文双语对照的内容
0 0

我有一個有以下欄位的表


Sno StockDate PartNo Quantity Location
1 22.11.2013 011011011 100 Perungudi
2 24.12.2013 011201120 1000 Kottivakkam
3 1.1.2014 011011011 80 Perungudi

如果需要在 1.1.201 4上選擇數據,則必須列出以下數據


Sno StockDate PartNo Quantity Location

 2 24.12.2013 011201120 1000 Kottivakkam
 3 1.1.2014 011011011 80 Perungudi

那是當天提供的股票,如上所示。 我想知道如何編寫選擇查詢

时间: 原作者:

0 0

DECLARE @TillDate date -- you should use stockdate's type;

SET @TillDate = '2014-01-01'; -- or '10140101' for datetime columns

SELECT *
FROM (
 SELECT.. ., row_number() over(partition by s.Location, s.PartNo order by s.StockDate DESC) RN
 FROM dbo.MyTable s
 WHERE s.StockDate <= @TillDate
) src
WHERE src.RN = 1;

上面的解決方案僅顯示每個位置和PartNo的最後一行。

原作者:
...