SQL - попытка суммировать значение из нескольких ссылок


У меня проблема с вычислением суммы столбца суммы из некоторого поля ссылок в 4 разных таблицах. вот мои таблицы:

Первая таблица (Мастер):

ID_1 | Name_1
1         A
2         B

Вторая таблица (Главная):

ID_2 | ID_1 | Name_2
 1_1    1      A1
 1_2    1      A2
 2_1    2      B1
 2_2    2      B2

Третья таблица (Транзакция):

ID_trans | ID_2 | trans_name | amount | cpy_ID
 trans1    1_1       Rev        123      1400
 trans2    2_1       Dir        321      1400
 trans3    2_1       Ind        231      1400
 trans4    1_2       OTH        234      1400

Четвертая таблица (шаблон отчета):

report_set_id | report_set_name  |  cpy_ID
     set001        Own Apps          1400
     set002        Third Party       1400

Основной случай заключается в том, что мне нужно создать отчет с третьей таблицей (транзакцией) в качестве ссылки на данные. И шаблон отчета был определен следующим образом :

----------------------------------------------------       
            |      1    |      2      |       TOTAL |------> (1 & 2 first table fields)
----------------------------------------------------
    set001  |  (data 1) |     -       |   (horizontal sum)
    set002  |     -     |  (data 2)   |   (horizontal sum)
-----------------------------------------------------    
    TOTAL   | (sum of 1)| (sum of 2)  |

Который является : (данные 1 и данные 2) = сводные данные из таблицы транзакций с одинаковым ID_2 и помещенные в строки столбца 1 (поскольку ID_1 является внешним ключом во второй таблице)

Я знаю, что мой язык сложен для понимания, потому что на самом деле его трудно объяснить словами, но я надеюсь, что вы, ребята, сможете понять, что именно я имею в виду: D

Может ли кто-нибудь дать мне несколько советов, как решить мою проблему? Спасибо

Author: KARTHIKEYAN.A, 2018-01-02

1 answers

Если у этого будет только 2 столбца данных (как указано в вашем примере "1" и "2"), то писать на SQL будет довольно легко, и мы могли бы это сделать. Но если будет несколько столбцов данных, и если будет переменное количество столбцов данных, то мы перейдем к общему вопросу "сводной таблицы". Вы можете найти множество обсуждений на эту тему под тегом [pivot] в stackoverflow. Мое собственное мнение таково, что все, кроме тривиального форматирования (включая почти все сводные таблицы), является лучше всего это делается в приложении. Используйте SQL для группировки и агрегирования данных, а затем используйте инструмент визуализации или ваше приложение для их форматирования. Я написал больше об этом на своем веб-сайте , где я объясняю несколько общих подходов и почему я их не использую.

 0
Author: Ron Ballard, 2018-01-03 09:48:15