【发布时间】:2016-06-28 17:20:29
【问题描述】:
我为所有具有范围键的父/子类型项目构建了一个层次结构(临时表)。我有一个表(LastOrdr),其中包含所有项目(无论父母/孩子)的最后订购日期。然后我有所有项目的主项目表。
我有一个查询,它选择满足特定 lastorderdate 条件的所有非父/子项目。这是一个简单的查询,它将主项目表与 LastOrdr 表连接起来,以从提供的用户参数中获取 max(lastorderdate)。
我的挑战是对父/子产品做同样的事情。对于父/子项目(一个父项,最多可以有 8 个子项,但在大多数情况下为 2/3)。选择是,对于一个家庭,max(lastorderdate) 必须应用于整个家庭。我的意思是,如果我的父母有 3 个孩子,我需要从 LastOrdr.lastorderdate 中找到这个家庭中所有 4 个(1 个父母和 3 个孩子)项目的最大值,然后将其与用户提供的参数进行比较。如果它符合家庭的标准,我想选择那个家庭,否则,放弃它。
我们将不胜感激提供一些指导。
谢谢。
Table1(主项):
itemID ParentID Descrip ......
21 2 .....
22 2 .....
23 2 .....
24 2 .....
27 3 .....
29 3 .....
33 3 .....
41 3 .....
......................
表 2(LastOrdr):
ItemID lastorderdate
2 2014-01-01
21 2014-07-21
21 2015-01-12
22 2013-01-01
23 2014-04-01
27 2013-01-23
...........................
【问题讨论】:
标签: sql join parent-child