Получить последнюю запись по дате (году) и добавить значение в поле из этой строки

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

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

Это таблица, которую я использовал для этого:

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 года нет записи.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
43
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

Спасибо, да, это дает мне последнюю строку. Но только поле datetime, мне нужно поле Number

Zam89 31.05.2019 09:37

Обновите ответ. Вы также можете использовать подзапросы для этого

RandomCoder 31.05.2019 11:18
Ответ принят как подходящий

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

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

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

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

Другие вопросы по теме