У меня есть таблица информации о размере базы данных. Данные собираются ежедневно. Однако некоторые дни пропущены по разным причинам. Кроме того, у нас есть базы данных, которые приходят и уходят, или размер не записывается для нескольких баз данных в течение дня или двух. Все это приводит к очень противоречивому сбору данных о датах. Я хочу построить SQL-процедуру, которая будет генерировать процент изменений между любыми двумя датами (1 неделя, месяц, квартал и т. Д.) Для ВСЕХ баз данных. Проблема заключается в том, что делать, если отсутствует выбранная дата (для этой даты нет строк или нет строки для одной или нескольких баз данных для этой даты). То, что я хочу сделать, - это получить ближайшую доступную дату для каждой базы данных для двух дат (начало и конец).SQL Server Хранимая процедура получить ближайшую доступную дату к параметру
Например, если база данных MyDB имеет следующие записи даты:
2015-05-03
2015-05-04
2015-05-05
2015-05-08
2015-05-09
2015-05-10
2015-05-11
2015-05-12
2015-05-14
и я хочу, чтобы сравнить с 2015-05-06 2015-05-14
2015-05-07 дата отсутствует, поэтому я хотел бы использовать следующую доступную дату, которая является 2015-05-08. Имейте в виду, что MyOtherDB может отсутствовать только с датой 2015-05-06, но иметь дату 2015-05-07. Итак, для MyOtherDb я бы использовал 2015-05-07 для сравнения.
Есть ли способ обработать это с помощью SQL без использования CURSOR?
Возможно. Что, если ближайшая конечная точка к началу до начала интервала? –
Я не хочу возвращать все строки между ними. Я хочу только конечные точки, чтобы вычислить разницу в размерах и вернуть процент изменения. – Woody
Gotcha, ответ обновлен –