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的最后一行。

原作者:
...