gpt4 book ai didi

SQL:选择最新子子项的位置

转载 作者:行者123 更新时间:2023-12-01 13:00:39 24 4
gpt4 key购买 nike

我有几个模型看起来有点像这样:Parent 与 Child 有 1-2-M 的关系,Child 与 Sub-Child 有 1-2-M 的关系。

Parent
------
Parent_ID


Child
-----
Child_ID,
Parent_ID


Sub-Child
---------
Child_ID,
Version_Number (numeric),
Sent (date),
Void (date)

我想要一个返回唯一 parent_id 列表的查询,其中相关子子项的最新版本(由 version_number 判断)是 'sent' == null,但是 ' void' != null.

我一直在脑海中反复思考这个问题,却想不通。

如有任何建议,我们将不胜感激。

谢谢,

罗伯特

最佳答案

它会是这样的:

;WITH CTE_LatestSubChildren AS
(
SELECT Parent_ID, Latest_Version_Number = max(sc.Version_Number)
FROM
Child c
JOIN [Sub-Child] sc on c.Child_ID = sc.Child_ID
GROUP BY c.Parent_ID

)
SELECT
ParentID
FROM
CTE_LatestSubChildren lsc
JOIN Child c
on lsc.Parent_ID = c.Parent_ID
JOIN [Sub-Child] sc
ON sc.Child_ID = c.Child_ID
AND sc.version_number = lsc.Latest_Version_Number
AND sc.Sent IS NULL
AND sc.Void IS NOT NULL

请注意,这可能需要修改,因为它未经测试,并且不完全清楚最新版本相同的多个子记录应该发生什么。

关于SQL:选择最新子子项的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com