按父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。