как рассчитать итоговую и промежуточную сумму из этой таблицы - PullRequest
0 голосов
/ 07 июля 2019

У меня есть 2 таблицы, подобные следующей:

таблица list_acc:

id_acc   nama_acc          parent_id_acc   level_acc   pattern_volume  id_sat  
-------  ----------------  --------------  ----------  --------------  -----------
      1  activities 1              (NULL)           1          (NULL)            1
      2  sub activities 1               1           2               1            1
      3  sub activities 2               1           2               1            1
      4  sub activities 3               1           2               1            1
      5  item sa 3 (1)                  4           3               1            1
      6  item sa 3 (2)                  4           3               1            1
      7  item sa 3 (3)                  4           3               1            1
      8  sub activities 4               1           2               1            1
      9  activities 2              (NULL)           1          (NULL)            1
     10  sub activities 1               9           2               1            2
     11  sub activities 2               9           2               1            2
     12  sub activities 3               9           2               1            2
     13  sub activities 4               9           2               1            2
     14  sub activities 5               9           2               1            2

номинал таблицы:

id_nominal  id_acc   volume      nominal  id_user  
----------  -------  ------  -----------  ---------
         1        2    2.00  15000000.00          1
         2        3    2.00  30000000.00          1
         3        2    2.00  10000000.00          2
         4       10    1.00   5000000.00          2
         5        5    1.00  20000000.00          1
         6       14   10.00   2000000.00          1

затем я соединяю две таблицы, загружая все таблицы list_acc и основываясь на id_user в именной таблице, с запросом

SELECT 
    level_acc, list_acc.id_acc, parent_id_acc, name_acc, volume, nominal,
    COALESCE(volume * nominal,0) AS total
FROM list_acc
LEFT JOIN
    (SELECT * FROM nominal
    WHERE id_user = '1') AS tbl_nominal_user
ON list_acc.`id_acc` = tbl_nominal_user.id_acc
ORDER BY list_acc.id_acc

, поэтому результаты выглядят следующим образом:

level_acc  id_acc  parent_id_acc  name_acc          volume      nominal          total  
---------  ------  -------------  ----------------  ------  -----------  ---------------
    1       1         (NULL)  activities 1      (NULL)       (NULL)           0.0000
    2       2              1  sub activities 1    2.00  15000000.00    30000000.0000
    2       3              1  sub activities 2    2.00  30000000.00    60000000.0000
    2       4              1  sub activities 3  (NULL)       (NULL)           0.0000
    3       5              4  item sa 3 (1)       1.00  20000000.00    20000000.0000
    3       6              4  item sa 3 (2)     (NULL)       (NULL)           0.0000
    3       7              4  item sa 3 (3)     (NULL)       (NULL)           0.0000
    2       8              1  sub activities 4  (NULL)       (NULL)           0.0000
    1       9         (NULL)  activities 2      (NULL)       (NULL)           0.0000
    2      10              9  sub activities 1  (NULL)       (NULL)           0.0000
    2      11              9  sub activities 2  (NULL)       (NULL)           0.0000
    2      12              9  sub activities 3  (NULL)       (NULL)           0.0000
    2      13              9  sub activities 4  (NULL)       (NULL)           0.0000
    2      14              9  sub activities 5   10.00   2000000.00    20000000.0000

затем я хочу вычислить итоговое значение по подактивам 3, где итоговое значение получается из общей суммы sa 3 или parrent id 4. затем итоговые операции 1 и 2, где итоговое значение получается по итоговым субпроизводствам * 1019.*

как написать запрос на mysql?

Ожидаемые результаты:

    level_acc  id_acc  parent_id_acc  name_acc          volume      nominal          total  
    ---------  ------  -------------  ----------------  ------  -----------  ---------------
            1       1         (NULL)  activities 1      (NULL)       (NULL)   110000000.0000
            2       2              1  sub activities 1    2.00  15000000.00    30000000.0000
            2       3              1  sub activities 2    2.00  30000000.00    60000000.0000
            2       4              1  sub activities 3  (NULL)       (NULL)    20000000.0000
            3       5              4  item sa 3 (1)       1.00  20000000.00    20000000.0000
            3       6              4  item sa 3 (2)     (NULL)       (NULL)           0.0000
            3       7              4  item sa 3 (3)     (NULL)       (NULL)           0.0000
            2       8              1  sub activities 4  (NULL)       (NULL)           0.0000
            1       9         (NULL)  activities 2      (NULL)       (NULL)    20000000.0000
            2      10              9  sub activities 1  (NULL)       (NULL)           0.0000
            2      11              9  sub activities 2  (NULL)       (NULL)           0.0000
            2      12              9  sub activities 3  (NULL)       (NULL)           0.0000
            2      13              9  sub activities 4  (NULL)       (NULL)           0.0000
            2      14              9  sub activities 5   10.00   2000000.00    20000000.0000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...