SQL - 尝试从多个引用中求和值

时间:2018-01-02 10:16:57

标签: php sql oracle

我有一个问题是从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

有人可以给我一些建议来解决我的问题吗?感谢

1 个答案:

答案 0 :(得分:0)

如果这只有2个数据列(在你的例子中标记为" 1"和" 2"那么)在SQL中写入很容易,我们可以做那。但是如果会有几个数据列,并且如果会有一个可变数量的数据列,那么我们就进入了一般的"数据透视表"题。您可以在stackoverflow中的[pivot]标记下找到关于此主题的许多讨论。我个人认为,除了琐碎的格式(包括几乎所有的数据透视表)之外,最好在应用程序中完成。使用SQL对数据进行分组和聚合,然后使用可视化工具或应用程序对其进行格式化。我在website上写了更多关于此的内容,在那里我解释了几种常见的方法以及为什么我不使用它们。