我正在制作一个组合框,其中显示了一个密钥标识符和摘要。
。
因此,在某些情况下,存在具有相同父ID的史诗(2)和故事(3)。我也有一些案例,其中有一个故事(5)和一个父ID(4),不在表中。
我想创建一个看起来像这样的两列组合框
。
我希望第一列(绑定列)仅显示每个父级ID一次。在像父母ID 2的情况下,既有史诗又有故事,我希望第二列显示史诗摘要。但是对于父母ID 4,因为我自己的记录中的表不存在ID 4,我想使用ID 5的摘要填充Summary。
我完全不知道如何在SQL中执行此操作。
SELECT table.[Parent ID], First(table.[Summary]) As [Summary]
与我所了解的差不多,但这只是返回给定父ID的第一个摘要,无论该记录是Epic类型还是Story。
我已经为此困扰了一段时间,非常感谢您的帮助。
答案 0 :(得分:0)
考虑:
SELECT ParentID, Summary FROM Table3 WHERE ID IN (
SELECT TOP 1 ID FROM Table3 AS Dupe
WHERE Dupe.ParentID=Table3.ParentID ORDER BY Dupe.Type);
答案 1 :(得分:0)
这是GROUP BY生效的地方。
SELECT ParentID, MAX(Summary)
FROM Table3
GROUP BY ParentID
但这只是图片的一部分,因为您会丢失“ Once Told Me”,因为从字母上看,它比“ The World”要小。
如果您需要查看所有摘要,则可能会有所帮助:
SELECT ParentID, Summary, MAX(Type) AS [Type], COUNT(*)
FROM Table3
GROUP BY ParentID, Summary
答案 2 :(得分:0)
嗯,我认为以下内容可以通过优先选择Epic来实现您想要的功能:
select parentid,
nz(max(iif(type = "Epic", summary, null)),
max(summary)
)
from t
group by parentid;