将记录排序和分组在一起

时间:2014-05-13 04:24:08

标签: sql sql-server sql-server-2008

我有一个返回父记录和子记录的查询。每条记录都有一个总金额字段。我尝试按总金额排序查询,但是在父级别上。子记录将显示在父

的正下方

例如,如果我有以下

| RecordID | Parent   |    Total |

|123       |         1|       90 |

|235       |         0|       70 |

|123       |         0|      100 |

|235       |         1|       60 |

我从最高到最低排序,看起来应该是这样的

RecordID    Parent    Total

| 123           | 1 |          90 |

| 123           | 0 |         100 |

| 235           | 1 |          60 |

| 235           | 0 |          70 |

我认为我可能需要在每个组的选择查询中放置某种排序号,所以在这个例子中,RecordID 123将被分配1,而记录235将被分配2

使用此功能,我可以按SortNumberParentTotal排序。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

获取父值的简单自我JOIN应该做得好;

SELECT a.*
FROM mytable a
JOIN mytable b
  ON a.recordid=b.recordid
 AND b.parent=1
ORDER BY b.total,b.recordid,a.parent DESC

An SQLfiddle to test with

答案 1 :(得分:0)

recordid排序有什么问题?

select recordid, parent, total
from yourtable
order by recordid, parent desc, total