mysql - 获取 SQL 中表中每一行的最大日期

标签 mysql sql

我编辑了我的答案,所以我的问题的解决方案是:

select  DISTINCT e.Cod_proiect
     , p.Descriere
     , p.Stare
     , p.ClientService
     , e.Data
  from ExpPoz as e 
  join Proiecte as p 
    on e.Cod_proiect=p.Cod_proiect 
             join ( 
                     select cod_proiect, max(data) maxDt 
                     from ExpPoz
                     group by cod_proiect 
                  ) latest on latest.cod_proiect = e.cod_proiect and latest.maxDt = e.Data and p.Stare='I'

出现以下错误:子查询返回超过 1 个值 我试图让每一行都有最大日期。

我有以下表结构:

a    date1
a    date2
a    date3
b    date4
b    date5

假设 date3 和 date5 是最旧/最大的,输出应该是:

a   date3
b   date5

提前致谢。

最佳答案

这应该可以解决问题:

select  e.Cod_proiect
      , p.Descriere
      , p.Stare
      , p.ClientService
from ExpPoz as e join Proiecte as p on e.Cod_proiect=p.Cod_proiect 
                 join ( 
                         select cod_proiect, max(data) maxDt 
                         from ExpPoz
                         group by cod_proiect 
                      ) latest on latest.cod_proiect = e.cod_proiect and latest.maxDt = e.Data
where p.Stare='I'

请注意,您编写 joins 的方式非常古老,如果您使用现代 join 样式,它会更好、更清晰。 在此查询中,我选择了您需要的所有内容,并使用每个 cod_proiect 的最新记录加入一次。

关于mysql - 获取 SQL 中表中每一行的最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930913/

相关文章:

mysql - 如何在mysql中手动复制master故障的场景

php - MySQL 按随机顺序但显示不同的前 5 个结果?

javascript - 延迟 catch of promise 的调用

php - PHP 中 JS 函数调用中的简单引用

sql - 在 Oracle 上选择字符串作为数字

php - 将变量传递给另一个 PHP 文件并执行它

mysql - 需要帮助编写 SQL 查询(连接、子查询)

历史表状态中的 SQL 查询

sql - 使用 SQL Server 进行性能调整

sql - 按大小划分的 PostgreSQL 数据库组成