Можно ли как-то отсортировать эту таблицу, используя 'ORDER BY'? - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть таблица учетных записей, которая содержит групповую учетную запись (isgroup) с субаккаунтом (groupcode):

| 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, а затем следующая учетная запись верхнего уровня.

Я выполнил задачу на уровне приложения, используя рекурсивную функцию, и добавил строки по одной в таблицу данных. Можно ли как-то отсортировать эту таблицу в одном запросе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...