0

我发现很难在标题中描述。

问题是:我需要在 2 个日期之间选择记录但我需要在第一个日期之前包含一个记录(我不知道它的日期)

以免我在以下位置有记录:

  • 15-12-2019
  • 15-12-2019
  • 16-12-2019
  • 01-01-2020
  • 05-01-2020
  • 2020 年 10 月 1 日
  • 15-01-2020
  • 17-01-2020

我需要为 之间的报告做一个 SELECT 01-01-2020 and 10-01-2020,但实际的记录集也应该包括在内16-12-2019,让我们称之为 PADDING 结果,再增加 1 条记录。

有任何想法吗?

谢谢。

4

2 回答 2

0

如果您有一个索引在您的日期开始,这也可以:

CREATE TABLE #data (ID int, dt date)

INSERT INTO #data VALUES(1,'12-15-2019')
INSERT INTO #data VALUES(2,'12-15-2019')
INSERT INTO #data VALUES(3,'12-16-2019')
INSERT INTO #data VALUES(4,'01-01-2020')
INSERT INTO #data VALUES(5,'01-05-2020')
INSERT INTO #data VALUES(6,'01-10-2020')
INSERT INTO #data VALUES(7,'01-15-2020')
INSERT INTO #data VALUES(8,'01-17-2020')

DECLARE @fromDate date = '01-01-20'
DECLARE @toDate date = '01-10-20'

SELECT * FROM #data 
WHERE dt >=  (SELECT MAX(dt) FROM #data WHERE dt < @fromDate) and dt <= @toDate
于 2020-01-26T12:14:37.290 回答
0

尝试类似:

SELECT
    *
FROM MyTable AS My
WHERE
    My.MyDate BETWEEN '2020-01'-01 AND '2020-01-10'
UNION ALL
SELECT TOP 1 *
FROM MyTable AS My
WHERE 
    My.MyDate <'2020-01-01'
ORDER BY
    My.MyDate DESC
于 2020-01-26T12:05:26.667 回答