【发布时间】:2017-07-01 05:26:14
【问题描述】:
我有两个表:Processes 和 Validations; p 和 v 分别。 每个流程都有许多验证。
目标是:
- 检索每个进程的最新验证。
- 生成一个 下一次验证到期的动态日期(Due_Date)(365 天) 在最近的验证日期之后)。
- 将结果过滤到任何到期 属于当月的日期。
简而言之;我想看看当月要验证哪些流程。
我 99% 都知道查询代码。阅读了这里的一些帖子后,我相当确定我走在正确的轨道上。我的问题是我的查询仍然返回每个进程的所有结果,而不是前 1 个。
仅供参考:进程表使用“Process_ID”作为主键;而验证表使用“Validation_Process_ID”作为外键。
目前的代码:
Select p.Process_ID,
p.Process_Name,
v.Validation_Date,
Date_Add(v.Validation_Date, Interval 365 Day) as Due_Date
From processes_active p
left JOIN processes_validations v
on p.Process_ID = (select v.validation_process_id
from processes_validations
order by validation_date desc
limit 1)
Having Month(Due_Date) = Month(Now()) and Year(Due_Date) = Year(Now())
任何帮助将不胜感激!我可能已经很接近了,只是无法对最后一部分进行排序!
谢谢
【问题讨论】:
-
您愿意提供样本数据吗?
标签: mysql sql sorting join limit