我有一个为所有具有范围项的父/子类型项目构建的层次结构(临时表)。我有一个表(LastOrdr),它具有所有项目的最后一个订单日期(不管父/子)。然后我有所有物品的主物品表。SQL为每个父项/子项目系列选择一个日期范围
我有一个查询,选择符合某个lastorderdate标准的所有非父/子项目。这是一个简单的查询,它将主项目表与LastOrdr表连接起来,从提供的用户参数中获取max(lastorderdate)。
我的挑战是对父母/孩子的产品也做同样的事情。对于父母/子女的物品(一个家长,最多可以有8个孩子,但大多数情况下可以有2/3)。选择是,对于一个家庭来说,max(lastorderdate)必须应用于整个家庭。我的意思是,如果我有一个父母的3个孩子,我需要从LastOrdr.lastorderdate中找到这个家庭中所有4个(1父母和3个孩子)项目的最大值,然后将其与用户提供的参数进行比较。如果它符合作为一个家庭的标准,我想选择那个家庭,否则,丢弃它。
一些指导,实现这一点将不胜感激。
谢谢。
表1(主项):
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
...........................
Alex,谢谢你的回应。在master中,对于父记录,我有parentID = 2以及itemID = 2。父母不为空。你会做出什么样的改变来适应你的查询? – Eclipse
查看更新回答 –
我喜欢这样一个事实,即它只返回符合条件的家庭的父记录。如果数据是正确的,我可以使用parentid来选择每个家庭中的所有孩子。另外,我需要提供一个where子句,所以我添加了“...from master m where lastorderdate <'05 -29-2015' group by m.Parent_ID“对你来说看起来合适吗? – Eclipse