В таблице у меня есть поле, содержащее дату в виде дд/мм/гггг:Найти ближайший срок до конца месяца для каждого месяца
TBL_Metrics:
DATE | MetricValue
03/02/2015 | 99.1%
04/02/2015 | 97.3%
03/03/2015 | 94.5%
29/03/2015 | 93.6%
07/04/2015 | 43.9%
30/04/2015 | 94.2%
...
Я хотел бы построить код SQL, который будет выглядеть в все эти даты и:
- детектировать месяц даты
- в течение каждого месяца, обратите внимание на дату, которая ближе всего к концу месяца (в очень короткий пример выше, за февраль ближе дата к конец месяца - 04/02/2015)
- Заново использовать ближайшие даты в конце месяца в запросе выборки:
Выберите TBL_Metrics.Date, TBL_Metrics.MetricValue ОТ TBL_Metrics ГДЕ TBL_Metrics.Date в ('04/02/2015' , '29/03/2015' , „30/04/2015“)
Я понятия не имею, как это сделать в SQL, на данный момент я сделать это в VBA, но это заставляет меня иметь манекен таблицу с подключением к базе данных, чтобы сначала получить все даты, затем выполнить цикл во всех датах, чтобы найти ближайшую дату до конца месяца, а затем я могу построить мой запрос для использования в другом spreqdetheet, который является грязным.
Чтобы дать Вам идею здесь, как я нашел ближайшую дату к концу месяца в УВА:
dat1month = January
dat2month = February
dat3month = March
For i = 2 To LR
If MonthName(Month(ActiveSheet.Cells(i, 3))) = dat1month Then
If ActiveSheet.Cells(i, 3) > Dat1max Then
Dat1max = ActiveSheet.Cells(i, 3)
End If
ElseIf MonthName(Month(ActiveSheet.Cells(i, 3))) = dat2month Then
If ActiveSheet.Cells(i, 3) > Dat2max Then
Dat2max = ActiveSheet.Cells(i, 3)
End If
ElseIf MonthName(Month(ActiveSheet.Cells(i, 3))) = dat3month Then
If ActiveSheet.Cells(i, 3) > Dat3max Then
Dat3max = ActiveSheet.Cells(i, 3)
End If
End If
Next i
Я надеюсь, что кто-то может помочь! Спасибо большое!
Пожалуйста, измените вопрос, чтобы включить DDL соответствующей таблицы, некоторые выборочные данные (предпочтительно в виде заявлений DML) и желаемый результат. –
Привет, Зоар, Извинения, надеюсь, теперь это яснее – tweedi