MYSQL查询只需要在group by字段中获取更大的日期值

标签 mysql datetime

我有如下所示的表格

CREATE TABLE IF NOT EXISTS `testtab` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(100) NOT NULL,
    `auto_num` varchar(100) NOT NULL,
    `seal_num` varchar(100) NOT NULL,
    `arr_date` date NOT NULL,
    `unload_date` date NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;


INSERT INTO `testtab` (`id`, `name`, `auto_num`, `seal_num`, `arr_date`, `unload_date`) VALUES
  (1, 'contain1', 'AT0000004815', 'CN44178', '2014-11-28', '2014-11-28'),
  (2, 'contain1', 'AT0000004815', 'CN44178', '2014-12-28', '2014-12-28'),
  (3, 'contain1', 'AT0000004815', 'CN44178', '2014-12-28', '2014-11-28'),
  (4, 'contain1', 'AT0000004815', 'CN44178', '2014-11-28', '2014-12-28'),
  (5, 'contain2', 'AT0000000227', 'CG11818', '2015-09-12', '2015-08-30'),
  (6, 'contain2', 'AT0000000227', 'CG11818', '2015-08-30', '2015-08-30'),
  (7, 'contain2', 'AT0000000227', 'CG11818', '2015-09-12', '2015-09-14'),
  (8, 'contain2', 'AT0000000227', 'CG11818', '2015-08-30', '2015-09-14'),
  (9, 'contain3', 'AT0000005297', 'FG1005G', '2015-01-25', '2015-01-27'),
  (10, 'contain3', 'AT0000005297', 'FG1005G', '2015-01-25', '2014-12-27');

我需要如下所示的输出结果 Mysql查询结果必须包含arr_date、unload_date中的最大日期值 按字段分组:名称、auto_num、seal_num

id  name        auto_num        seal_num    arr_date    unload_date 
2   contain1    AT0000004815    CN44178     2014-12-28  2014-12-28
7   contain2    AT0000000227    CG11818     2015-09-12  2015-09-14
9   contain3    AT0000005297    FG1005G     2015-01-25  2015-01-27

我想在这里使用什么查询,请帮助我,

最佳答案

你可以这样做:

SELECT * FROM `testtab` t
WHERE (t.arr_date,t.unload_date) in(select max(arr_date),max(unload_date)
                                    from `testtab` s where s.name = t.name
                                    and s.auto_num = t.auto_num and s.seal_num = t.seal_num)

这将为每个组合(name、auto_num、seal_num)选择最大 arr_date 和 unload_date,然后检查行中两列是否相等,然后选择它。

关于MYSQL查询只需要在group by字段中获取更大的日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35292643/

相关文章:

php - 显示来自 3 个 SQL 表的表数据并使用 php 条件显示 - 使用完全连接

带有连接和限制的 Mysql 更新

sql - 如何在 RDB 中改进以下 SQL 选择日期

python - 在 Python 中将当前时间提前一小时

mysql - 在我的 Web 应用程序中获取主键列显示为 null 的结果,但在 SQL Workbench 中相同的 SELECT 语句工作正常

php - sql 无法在另一个页面的 Session_start() 内工作

PHP 插入不起作用

python-3.x - 无法使用 `datetime` 从 Python `datetime64` 对象的可迭代对象转换为 Numpy `fromiter()` 对象的数组。漏洞?

python - Matplotlib 修复轴 - 日期太多

mmddhhmmss 格式的 java 日期