Получить последнюю запись по дате (году) и добавить значение в поле из этой строки - PullRequest
1 голос
/ 31 мая 2019

Я сделаю следующее:

Запустите запрос, который вернет мне последнюю запись текущего года, возьмите поле из этой записи.

Это может Табель, который я использовал для этого:

ID(int,PK)    FremdID(int)    Erstellung(datetime)      Number(int)
1             10              2019-05-31 09:15:41.003   1
2             11              2019-05-31 09:15:42.154   3

Так что, если я выполню запрос, он должен вернуть строку с индексом 2, потому что мы находимся в 2019 году, и это самая последняя запись с 2019.

Если мы сейчас находимся в 2020 году, тогдазапрос не должен возвращать ни одной строки, потому что нет записи для 2020.

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Я бы порекомендовал:

SELECT TOP(1) t.*
FROM #Table t
WHERE Erstellung >= DATEFROMPARTS(YEAR(GETDATE()), 1, 1)
ORDER BY Erstellung DESC;

Я рекомендую это, потому что он совместим с индексами.Он может использовать индекс на (Erstellung DESC).

Если вы используете функцию типа YEAR(Erstellung) в предложении WHERE, индекс не будет использоваться.

1 голос
/ 31 мая 2019

Это должно сделать это

SELECT a.Number 
FROM [YourTable] a
JOIN (SELECT MAX(Erstellung) AS Erstellung
      FROM [YourTable]
      WHERE DATEPART(YEAR,Erstellung) = DATEPART(YEAR,GETDATE())
      ) b ON a.Erstellung = b.Erstellung

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...