有什么办法可以使用“ ORDER BY”对这张表进行排序?

时间:2019-04-22 19:32:58

标签: mysql sql database vb.net database-design

我有一个“帐户”表,其中包含带有子帐户(组代码)的组帐户(isgroup):

| code | title          | groupcode | isgroup | groupindex |
|------|----------------|-----------|---------|------------|
| 100  | Current Assets |           | 1       | 0          |
| 101  | Cash           | 100       | 1       | 1          |
| 102  | AR             | 100       | 1       | 1          |
| 103  | Property       |           | 1       | 0          |
| 104  | Balance        |           | 1       | 0          |
| 105  | Cash on hand   | 101       | 1       | 2          |
| 106  | Cash in bank   | 101       | 1       | 2          |
| 107  | My Bank 1      | 106       | 0       | 3          |
| 108  | Cahier 1       | 105       | 0       | 3          |
| 109  | Building 1     | 103       | 0       | 1          |

注意:

  1. 没有生成“代码”的标准方法。可以是任何(文本)
  2. 任何帐户都可以具有由“ isgroup”和“ groupcode”确定的子帐户。
  3. “ isgroup”确定该帐户是否可以有一个子帐户。
  4. “ groupindex”确定子帐户级别。索引n(0)是最高级别,其子帐户将位于索引n +1中。

我需要这样排序:

| code  | title             | groupcode     | isgroup   | groupindex    |
|------ |----------------   |-----------    |---------  |------------   |
| 100   | Current Assets    |               | 1         | 0             |
| 101   | Cash              | 100           | 1         | 1             |
| 105   | Cash on hand      | 101           | 1         | 2             |
| 108   | Cashier 1         | 105           | 0         | 3             |
| 106   | Cash in bank      | 101           | 1         | 2             |
| 107   | My Bank 1         | 106           | 0         | 3             |
| 102   | AR                | 100           | 1         | 1             |
| 103   | Property          |               | 1         | 0             |
| 109   | Building 1        | 103           | 0         | 1             |
| 104   | Balance           |               | 1         | 0             |

必须首先显示最高级帐户及其不超过n级的子帐户,然后显示下一个最高级帐户。

我已经使用递归函数在应用程序级别完成了任务,并将行一一添加到数据表中。有什么办法可以在一个查询中对该表进行排序?

0 个答案:

没有答案