按父ID进行SQL gruping
我有这样的数据按父ID进行SQL gruping,sql,Sql,我有这样的数据 | ID |子| ID |数量|类型| |----|----------|----------|------| |1 | 28 | B| |2 | 1 | 14 | S| |3 | 1 | 10 | S| |4 | 2 | 14 | K| |5 | 2 | 10 | K| |6 | 3 | 28 | P| |7 | 10 | B| |8 | 7 | 8 | S| |9 | 7 | 2 | S |很难理解您在这里到底想做什么。但这看起来像是一个支点,可以用来完成类似的事情。例如:
| ID |子| ID |数量|类型|
|----|----------|----------|------|
|1 | 28 | B|
|2 | 1 | 14 | S|
|3 | 1 | 10 | S|
|4 | 2 | 14 | K|
|5 | 2 | 10 | K|
|6 | 3 | 28 | P|
|7 | 10 | B|
|8 | 7 | 8 | S|
|9 | 7 | 2 | S |
很难理解您在这里到底想做什么。但这看起来像是一个支点,可以用来完成类似的事情。例如:
SELECT *
FROM
(SELECT id, quantity, type
FROM t) main
PIVOT
(SUM(quantity)
FOR type in ([B], [K], [P], [S])) piv
返回:
id B K P S
1 1 28 NULL NULL NULL
2 2 NULL NULL NULL 14
3 3 NULL NULL NULL 10
4 4 NULL 14 NULL NULL
5 5 NULL 10 NULL NULL
6 6 NULL NULL 28 NULL
7 7 10 NULL NULL NULL
8 8 NULL NULL NULL 8
9 9 NULL NULL NULL 2
请指定SQL server类型。此外,请告诉我们根据什么标准将数据分组到预期结果中。也请发布您尝试过的内容。@Jacky SQL server和SQL是不同的。如果可能的话,您需要先编写一个递归函数来查找最终的父id,然后在“类型”列中为每个级别使用一个条件和。@Gurvindersingh我的错误的、缺少的逗号:“SQL,server,type”,如@bart所写,我试图通过递归找到最终的父ID。