我正在尝试提取每个月的最大日期,以便以后的联接在结果中提取与SQL Server的Transact-SQL中匹配(内部联接)该最大日期的记录/行
主要问题在于,在转换日期之前,该步骤与该月的1号星期日或2号星期日完全匹配,分别减去1或2天。之后,我尝试了一个选择,将其用于一年中每个星期的“最长日期”(类似的行为),但没有成功
我有这个Select来选择每周的最大日期,没问题
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;
但是与月份相同的行为无法选择从mont的1st和2nd转换的寄存器
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;
在这种情况下,它应该在6月的情况下返回“最大日期”-> 31-5-2019(数据库中出现doenst的日期,并且我们从6月2日开始对其进行了转换),但重新调整为30-5-2019,这一次出现但31 -5-2019更大,因此不应该退货
有什么想法吗?
答案 0 :(得分:0)
SELECT working_area, MAX(commission)
FROM agents
GROUP BY working_area;
答案 1 :(得分:0)
SELECT max([date_field]) as date,
FROM [database].[dbo].[Table]
GROUP BY month([date])
ORDER BY month(date) ASC;
答案 2 :(得分:0)
假设数据库中可能有一年以上,则应在计算中包括年份:
SELECT MAX(t.date_field) as date,
FROM [database].[dbo].[Table] t
GROUP BY YEAR(t.date_field), MONTH(t.date_field)
ORDER BY MAX(t.date_field) ASC;
类似地,您的一周代码考虑了年份,尽管非常小。