今天和经理一起合作写了一个非常长的Query, 对Join和CTE的理解又加深了许多。由于对真实需求的描述涉及到非常复杂的业务知识,所以在此文章对需求进行抽象的描述。
需求:
给定两个表A, B。A当中有三个Columns, 假定为C_A1,C_A2,C_A3, C_A4。B当中有也有两个值C_B1和C_B2。两个表没有外键联系,但是潜在的对应关系为C_A3 对应 C_B1, C_A4对应C_B2。
那么需要找出在每个拥有最大C_A2的items当中,C_A3 = C_B1, 但在这个item当中的C_A4,从B中找不到对应的C_B2。
例子:
A表
C_A1 | C_A2 | C_A3 | C_A4 |
---|---|---|---|
123 | 10/01/2015 | 999 | 08/01/2015 |
123 | 09/01/2015 | 999 | 08/01/2015 |
456 | 10/01/2015 | 888 | 10/01/2015 |
456 | 09/01/2015 |