В каждой строке данных, с которыми я работаю, у меня есть дата и значение:
f1 f2
2012-01-01 00:00:00.000 10
2012-01-10 00:00:00.000 9
2012-02-01 00:00:00.000 19
2012-02-15 00:00:00.000 31
Используя TSQL, мне нужно возвращать каждую строку, содержащую последний ДЕНЬ для конкретных комбинаций год-месяц. Например, в приведенных выше данных мне нужно возвращать вторую и четвертую строки, так как 1/10/2012 содержит " последний «день» хранится в январе-2012, а 15.02.2012 - последний день, зарегистрированный в феврале-2012. Желаемые результаты:
f1 f2
2012-01-10 00:00:00.000 9
2012-02-15 00:00:00.000 31
Обратите внимание, что это не так просто, как просто определить "последний день месяца" или "последний рабочий день месяца".
Я подозреваю, что мне нужно использовать какую-то комбинацию GROUP BY, HAVING, которая включает MAX на datepart («день», f1), но я не знаю, как двигаться дальше. Может ли кто-то подтолкнуть меня в правильном направлении?