我一直试图解决一小部分原本复杂的 JOIN。
我们有一个“说明”表和一个“估计”表。estimates
在“估计”中,对于给定的指令,我们有不同类型的多行。
说明表
id | address | status
1 | 27 TAYLOR ROAD, ALBION PARK NSW 2527 | InProgress
估计表
id | instruction_id | basis | basis_date | basis_value
1 | 1 | ContractPrice | 2012-04-05 | 124000
2 | 1 | CAMV | 2012-02-01 | 120000
3 | 1 | CustomerEstimate | 2012-06-07 | 132000
4 | 1 | ContractPrice | 2013-01-03 | 140000
5 | 1 | CustomerEstimate | 2013-02-09 | 145000
我们想要的实际上是基于 instructions.id =estimates.instruction_id 和estimates.basis 的“估计”上的 2 个“指令”连接,用于 1)最近的“客户估计”(将 basic_date 和 basic_value 别名为估计日期和估计值)和 2)最近的“ContractPrice”(同样,将 basic_date 和 basic_value 别名为 contact_date 和 contract_value)。
预期结果如下;
id | address | status | contract_price | contract_date | estimate_date | estimate_value
1 | 27 TAYLOR ROAD, ALBION PARK NSW 2527 | InProgress | 2013-01-03 | 140000 | 2013-02-09 | 145000
我真的很感谢那里的 SQL 专家提供的帮助。
非常感谢,特伦特。