小编fuj*_*jih的帖子

层次结构中的SQL Top父记录

我有一个结构表:

CompanyID,CompanyName,LinkedCompanyID

这样多个公司就可以在层次结构中进行链接

例如

CompanyID, CompanyName, LinkedCompanyID
1          Company A,   NULL
2          Company B,   1
3          Company C,   2
4          Company D,   2
5          Company E,   4
6          Company F,   3
7          Company G,   NULL
Run Code Online (Sandbox Code Playgroud)

我想要一个查询来返回每个公司的顶级父级

CompanyID, CompanyName, ToplevelParentID
1          Company A,   NULL (or 1 I don't mind)
2          Company B,   1
3          Company C,   1
4          Company D,   1
5          Company E,   1
6          Company F,   1
7          Company G,   NULL (or 7 I don't mind)
Run Code Online (Sandbox Code Playgroud)

我已经看过使用重复的CTE表达式,但我可以找到的所有示例都返回父级的层次结构列表而不是最顶级的父级.

任何人都可以提供任何指针或示例查询

sql t-sql sql-server common-table-expression

3
推荐指数
1
解决办法
5296
查看次数

一个字段上的SQL条件逻辑不影响分组

我有以下数据:

ID  ActionType  Quantity  Fee
1   Commission  1         10
1   Open        2         10
2   Commission  1         20
2   Close       3         20
3   Commission  1         30
3   Transfer    4         30
Run Code Online (Sandbox Code Playgroud)

如何按ID分组并选择不是佣金的ActionType?

所以我想结束

ID  ActionType  Quantity  Fee
1   Open        3         20
2   Close       4         40
3   Transfer    5         60
Run Code Online (Sandbox Code Playgroud)

我可以通过使用ID除以分区来计算出数量和费用的总和,但是我无法弄清楚如何选择不是佣金的对的ActionType.

sql sql-server

1
推荐指数
1
解决办法
87
查看次数

标签 统计

sql ×2

sql-server ×2

common-table-expression ×1

t-sql ×1