我有一个问题是从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列中的行(因为第2个表中的ID_1是外键)
我知道我的语言很难理解因为实际上很难通过语言解释,但我希望你们能得到我的意思:D
有人可以给我一些建议来解决我的问题吗?感谢
答案 0 :(得分:0)
如果这只有2个数据列(在你的例子中标记为" 1"和" 2"那么)在SQL中写入很容易,我们可以做那。但是如果会有几个数据列,并且如果会有一个可变数量的数据列,那么我们就进入了一般的"数据透视表"题。您可以在stackoverflow中的[pivot]标记下找到关于此主题的许多讨论。我个人认为,除了琐碎的格式(包括几乎所有的数据透视表)之外,最好在应用程序中完成。使用SQL对数据进行分组和聚合,然后使用可视化工具或应用程序对其进行格式化。我在website上写了更多关于此的内容,在那里我解释了几种常见的方法以及为什么我不使用它们。