Я не вхожу в базу данных, и у меня есть следующая проблема, работающая на базе данных Microsoft SQL Server.Как я могу реализовать SQL-запрос, который возвращает запись, ближайшую к дате предоставления?
У меня есть таблица с именем RendimentiGS, который содержит информацию, как это:
ID FondoID DataRiferimento Rendimento
1651 ISPAI 2015-05-01 00:00:00 2.99000
1652 ISPAI 2015-06-01 00:00:00 3.04000
1653 ISPAI 2015-07-01 00:00:00 3.00000
1654 ISPAI 2015-08-01 00:00:00 2.85000
1655 ISPAI 2015-09-01 00:00:00 0.00000
1656 ISPAI 2015-10-01 00:00:00 0.00000
1657 ISPAI 2015-11-01 00:00:00 0.00000
1658 ISPAI 2015-12-01 00:00:00 0.00000
Итак, как вы можете видеть в предыдущем примере таблицы, поле Rendimento содержит некоторые данные, которые имеют значение, отличное от 0, затем следуют другие данные, имеющие значение 0.
Важно отметить, что из конкретной записи следующие 0,00000 как значение Rendimento поле.
В particuar, в предыдущем случае, после этой записи:
1654 ISPAI 2015-08-01 00:00:00 2.85000
все следующая запись будет иметь 0.00000 в качестве значения поляRendimento.
Теперь я должен осуществить запрос, учитывая дату (связанную с области DataRiferimento) в записи, имеющей 0,00000 в качестве значения полей Rendimento вернуть последнюю запись, которая имеет поля Rendimento имеющий значение, отличное от 0,00000.
Например:
Учитывая дата 2015-12-01 00:00:00, что связано с записью, имеющей 0.00000 в качестве значения поляRendimento. Он вернуть эту запись:
1654 ISPAI 2015-08-01 00:00:00 2.85000
, который является "ближайшим" (по отношению к полю DataRiferimento) запись, имеющей Rendimento поля, отличного от 0.00000.
Каков самый умный способ реализовать такой запрос?
ли все записи в DataRiferomento, имеющие большее значение даты? То есть каждая новая дата будет больше, чем последняя запись? Также имеют ли новые даты когда-либо значение вне 0,0000 в Rendimento? – makadus