Рассчитать процент от суммы для филиала под тем же уровнем - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь рассчитать процентный вклад каждой ветви под тем же уровнем. Например, у нас ниже входные таблицы Amount и Branch J60 и J90 находятся под одним и тем же L1 X900 в иерархической таблице, тогда процентный вклад будет суммой (J60) / суммой (J60 + J90). MQ0 - единственная ветвь под X600, поэтому процент будет 200/200.

Аналогично, проценты уровня L0 J60, J90, MQ0 находятся под той же веткой уровня 0, что и M1200, тогда проценты будут похожи на J60 / J60 + J90 + MQ0

Как найти этот процентный вклад.

Количество:

+--------+---------+-------+
| amount | branch  | Level |
+--------+---------+-------+
| 1000   | J60     |  L2   |
+--------+---------+-------+
| 200    | MQ0     |  L2   |
+--------+---------+-------+
| 1500   | X600    |  L1   |
+--------+---------+-------+
| 100    | J90     |  L2   |
+--------+---------+-------+
| 1200   | X900    |  L1   |
+--------+---------+-------+
| 2000   | M1200   |  L0   |
+--------+---------+-------+

Таблица иерархии: имеет отображение уровней кодов ветвей.

+---------+----------+-----------+
| level0  | level1   | level2    |
+---------+----------+-----------+
| M1200   | X900     | J60       |
+---------+----------+-----------+
| M1200   | X600     | MQ0       |
+---------+----------+-----------+
| M1200   | X900     | J90       |
+---------+----------+-----------+

Таблица ожидаемых результатов:

+--------+---------+-------+--------------+--------------+
| amount | branch  | Level | L1 Percent   | L0 Percent   |
+--------+---------+-------+--------------+--------------+
| 1000   | J60     |  L2   | 1000/1100    | 1000/1300    |
+--------+---------+-------+--------------+--------------+
| 200    | MQ0     |  L2   | 200/200      | 200/1300     |
+--------+---------+-------+--------------+--------------+
| 1500   | X600    |  L1   |    NA        | 1500/1700    |
+--------+---------+-------+--------------+--------------+
| 100    | J90     |  L2   | 100/1100     | 100/1300     |
+--------+---------+-------+--------------+--------------+
| 1200   | X900    |  L1   |    NA        | 1200/1700    |
+--------+---------+-------+--------------+--------------+
| 2000   | M1200   |  L0   |    NA        | NA           |
+--------+---------+-------+--------------+--------------+
...