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