我有两个表:进程和验证; p和v。 对于每个进程有许多验证。MySQL限制和订单左连接
目的是:
- 检索每个进程的最新验证。
- 生成一个 动态日期(Due_Date),以确定下一次验证何时到期(即最近验证日期后的365天 )。
- 将结果过滤为当前月份中应有的任何到期日期 。
简而言之;我想看看哪些流程将在当月进行验证。
我99%与查询代码。阅读了这里的一些帖子后,我相当肯定我在正确的轨道上。我的问题是,我的查询仍然返回每个进程的所有结果,而不是顶端1.
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())
任何帮助,将彻底感激!我可能非常接近,只是无法排序最后一节!
感谢
见http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an -mcve-for-what-looks-to-the-very-simple-sql-query – Strawberry
你想提供样本数据吗? –