[英]Find closest date to month end for each month
在一個表中,我有一個包含日期的字段,格式為dd / mm / yyyy:
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','29/03/2015','30/04/2015')中從TBL_Metrics的TBL_Metrics.Date中選擇TBL_Metrics.Date,TBL_Metrics.MetricValue
我不知道如何在sql中執行此操作,目前我在VBA中執行此操作,但是它迫使我必須要有一個具有數據庫連接的虛擬電子表格,首先要檢索所有日期,然后在所有日期上循環以查找最接近的日期月底,然后我可以構建要在另一個spreqdsheet中使用的查詢,這很麻煩。
這里給你一個想法是我如何在vba中找到最接近月底的日期:
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
希望有人能幫忙! 非常感謝!
如果我正確閱讀了您的問題,我認為您可以使用SQL排名功能ROW_NUMBER來提供幫助,例如...
SELECT Date ,
MetricValue
FROM (
SELECT Date ,
MetricValue ,
ROW_NUMBER() OVER PARTITION BY (YEAR(Date), MONTH(Date) ORDER BY Date DESC)
FROM TBL_Metrics
) x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.