使用MAX的mysql查询

用户名

我希望有一个人可以帮助我。我看过其他线程,但找不到正确的答案。

我有一个包含以下数据的mysql数据库:

id, company, datefrom, dateto, rate, point1, point2

1, DHL, 2014-03-01, 2014-03-31, $1000, Paris, New York

2, MRW, 2014-03-01, 2014-03-31, $1300, Paris, New York

3, EXP, 2014-03-01, 2014-03-31, $1000, Paris, New York

4, DHL, 2014-03-06, 2014-03-31, $900, Paris, New York

5, FED, 2014-03-01, 2014-03-31, $1200, Paris, New York

我需要执行一个查询,在该查询中,基于日期,它将仅显示该日期之后的有效汇率。例如,如果今天是2014-03-06,我需要结果是:

2, MRW, 2014-03-01, 2014-03-31, $1300, Paris, New York

3, EXP, 2014-03-01, 2014-03-31, $1000, Paris, New York

4, DHL, 2014-03-06, 2014-03-31, $900, Paris, New York

5, FED, 2014-03-01, 2014-03-31, $1200, Paris, New York

如您所见,记录1不会显示为记录4替换了记录1(截至2014-03-06)

我尝试了以下查询,该查询有效:

SELECT id, company, MAX(datefrom), dateto, rate, point1, point2 FROM mydatabase
WHERE datefrom<='2014-03-06' and datefrom>='2014-03-06'
AND point1='Paris' AND point2='New York' GROUP BY company, point1, point2

除了选择DHL的所有公司外,此查询的工作情况非常好,但对于DHL,它从记录1中选择所有字段,但从记录4中选择日期!

我究竟做错了什么?

波希米亚风格

利用mysql的非标准分组支持:

SELECT * FROM (
  SELECT * FROM mydatabase
  WHERE '2014-03-06' BETWEEN datefrom AND dateto
  AND point1 = 'Paris'
  AND point2 = 'New York'
  ORDER BY datefrom DESC) x
GROUP BY company

该作品由第一顺序匹配的行通过最新启动的范围首先在内部查询,然后通过并非所有非聚合列,MySQL的选择分组第一行中的每个唯一值company,第一行是一个你想要的(有先前已订购)。

还请注意,使用条件的重做BETWEEN更为优雅。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

优化使用IN和MAX(date)的MySQL查询

来自分类Dev

在MySQL查询中使用MAX函数

来自分类Dev

mysql :匹配并使用 max 进行查询

来自分类Dev

在 MySQL 中对 DISTINCT 查询使用 MIN MAX 查询?

来自分类Dev

MySQL MAX查询优化

来自分类Dev

MySQL MAX从计数查询

来自分类Dev

在 mysql 查询中使用 max() 时回显错误

来自分类Dev

使用 Max 函数的 SQL 查询

来自分类Dev

Groupwise Max MySQL查询忽略NULL列

来自分类Dev

MySQL-子查询的max()行值

来自分类Dev

MySQL:SUM / MAX / MIN GROUP BY查询优化

来自分类Dev

MySQL中复杂的联接和MAX()查询

来自分类Dev

MySQL - 需要找到 MAX 的 SUM 查询

来自分类Dev

使用unixtime的MySQL查询

来自分类Dev

使用“ NOT IN”优化MySQL查询

来自分类Dev

使用Mysql查询的OTRS

来自分类Dev

使用LIKE的MYSQL查询

来自分类Dev

使用unixtime的MySQL查询

来自分类Dev

PHP/MySQL 查询使用 AND

来自分类Dev

使用 GET 查询 MySQL

来自分类Dev

MongoDB:如何使用IS NOT(MAX())标准查询文档?

来自分类Dev

使用MAX()和SUM()聚合的SQL查询

来自分类Dev

如何使用max(date)值过滤查询

来自分类Dev

使用HQL中的MAX删除查询

来自分类Dev

MySQL UPDATE with JOINS 使用 MAX

来自分类Dev

使用相关子查询优化MySQL查询

来自分类Dev

增加“ max_allowed_packet”后mysql查询被截断

来自分类Dev

MySQL:从具有COUNT()的子查询中选择MAX()

来自分类Dev

MySQL SQL min()和max()查询数组回显零