当前位置: 首页 > 知识库问答 >
问题:

如何在数据库中选择每月的MAX日期

卜阳
2023-03-14

我正在尝试提取每个月的最大日期,以便以后进行连接,以便在结果中提取与Transact-SQL for SQL Server中的此最大日期匹配(内部连接)的记录/行

主要问题是,在我转换日期之前的步骤中,这些日期分别与一个月的第一个星期日或第二个星期日减去1天或2天正好匹配。在那之后,我试着选择了一年中每周的最大日期(类似的行为),但它不起作用

我有这个选择每周的最大日期,没有问题

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;

在这种情况下,它应该返回6月的最大日期-

有什么想法吗?

共有3个答案

韶英达
2023-03-14

假设数据库中可能有一年以上的时间,则应在计算中包括该年份:

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;

同样,您的周代码也考虑了年份,尽管非常不优雅。

黄丰
2023-03-14
SELECT working_area, MAX(commission) 
FROM agents 
GROUP BY working_area;
吕高雅
2023-03-14
SELECT max([date_field]) as date,
FROM [database].[dbo].[Table]
GROUP BY month([date])
ORDER BY month(date) ASC;
 类似资料:
  • 问题内容: 这是表结构 我需要一条声明,列出从最近输入的每条消息,我不知道如何执行此操作。谁能指出我正确的方向?提前谢谢。 问题答案: 应该这样做:

  • 我试图通过以下查询获得日期。但没用。 我已经解析了用户输入日期,以'yyyy-mm-dd'格式存储到数据库中。帮我从所有记录中找出今天的生日日期。

  • 未在数据库中插入多选值。 我的田地。yaml代码为: 我的模型代码是: 目前只有一个选定的值插入database.need在数据库中添加多个值。有人能解决它吗?

  • 我的数据库中有一个类似这样的表:ID | datetime | value1 | value2 | value3 现在,我想选择datetime、value1、value2和value3,其中value1是每天的最低值(MIN(value1))。以下示例(箭头指示需要选择的行): 我有以下疑问: 这给了我一个结果,但不是我所期望的。datetime和value2、value3不来自找到每日最小值的

  • 问题内容: 我写了一个查询以获取用户表中的按月记录,如下所示 输出: 预期产量: 即使数据不存在,我也需要显示记录。这个怎么做? 问题答案: 关于效率,我不会说太多,因为我没有针对其他方法进行过测试,但是如果没有临时表,这似乎是一个不错的选择。 如果您基于日期格式进行并集,甚至可以减少工作量和查询负担。 两个查询的实时演示。

  • 问题内容: 我正在尝试返回记录编号的历史位置 我所拥有的是: 解析大约需要1分钟,并返回如下数据: 我真正希望看到的是像这样的查询中的数据: 哪个返回 第二个查询更好,但我真的只想显示每个记录ID和位置的最后修改时间。 有人可以看到我在做什么吗?感谢您的帮助。 问题答案: 像这样 其核心是…