【发布时间】:2019-03-28 17:31:27
【问题描述】:
我有 2 个包含以下信息的表。不幸的是,我对 JOINS 和 MySQL 的基本知识并没有帮助我实现我需要的结果集……尤其是第 3 点让我望而却步。非常感谢任何帮助。
订单
OrderID OrderDate Client Country
68349 1/1/2018 GSC Ltd US
93909 1/1/2018 XYZ Ltd UK
39900 3/31/2018 ABC Ltd US
69382 4/4/2018 ABC Ltd US
94500 6/21/2018 DEF Ltd US
93911 1/1/2018 TUV Ltd UK
报告
RepID State RepDate Building OrderID
1 AK 1/1/2018 PE James 93909
2 CA 4/2/2018 PE Grid 93909
3 CA 3/31/2018 PMU Jaya 39900
4 WA 4/4/2018 PMU Taman 69382
5 CA 6/21/2018 PE Grid 94500
6 CA 3/31/2018 PMU Wate 39900
我需要选择所有基于:
- 选择国家/地区 = 美国的订单
- 选择属于这些美国订单一部分的报告(即订单 ID = 上述结果中的订单 ID)
- 最重要的是:过滤报告结果,使其仅显示每个建筑物的单个最新报告(基于最近的 RepDate)
所以结果是:
OrderID OrderDate Client Country RepID RepDate Building
68349 1/1/2018 GSC Ltd US - - -
39900 3/31/2018 ABC Ltd US 3 3/31/2018 PMU Jaya
69382 4/4/2018 ABC Ltd US 4 4/4/2018 PMU Taman
94500 6/21/2018 DEF Ltd US 5 6/21/2018 PE Grid
以下结果将被排除,因为“PE Grid”有更新的报告:
OrderID OrderDate Client Country RepID RepDate Building
39900 3/31/2018 ABC Ltd US 6 3/31/2018 PE Grid
【问题讨论】:
-
OrderDate和RepDate字段的数据类型是什么? -
它们是日期字段。实际的表格是 YYYY-MM-DD 格式。但我只是让日期在这里更容易阅读。希望没关系。
-
欢迎来到 Stack Overflow,@Kristy。为了将来参考,明智的做法是给您的问题一个描述性标题。它可以帮助其他有类似问题的人找到您的问题和任何答案。我冒昧地编辑了这个标题。
-
这是一个(很明显也很容易找到)常见问题解答。 PS 请通过编辑而不是 cmets 澄清。
标签: mysql join jointable groupwise-maximum