Я пытаюсь извлечь максимальную дату каждого месяца для последующего объединения, чтобы извлечь в результатах записи / строки, которые соответствуют (внутреннему объединению) этой максимальной даты в Transact-SQL для SQL Server
Основная проблема заключается в том, что на шаге перед преобразованием дат, которые точно соответствуют 1-му или 1-му воскресению месяца, вычитая соответственно 1 или 2 дня. После этого я попробовал выбрать, который я использовал для Max Date каждой недели года (похожее поведение), но он не работал
У меня есть этот выбор для максимальной даты каждой недели и без проблем
SELECT max([date_field]) as date,
FROM [database].[dbo].[Table]
GROUP BY SUBSTRING(CAST([date] AS NVARCHAR(25)), 8,4) ,Week_Number
ORDER BY week_Number ASC;
Но применение того же поведения с месяцем не может выбрать регистры, преобразованные из 1-го и 2-го числа месяца
SELECT max([date_field]) as date,
FROM [database].[dbo].[Table]
GROUP BY SUBSTRING(CAST([date] AS NVARCHAR(25)), 8,4) ,month_Number
ORDER BY month_Number ASC;
в этом случае должно возвращаться Макс. Дата в июне -> 31-5-2019 (дата, которая должна появиться в базе данных, и мы преобразовали ее со 2 июня), но перенастроена 30-5-2019, эта появляется, но 31 -5-2019 больше, поэтому его не нужно возвращать
Есть идеи?