如何将两个不同的表连接在一起并合计为第三个表

枪手

我有两个数据表,InboundCallsOutboundCalls,如下所示:

InboundCalls I
Date        System    VDN      VDNName    GroupID    GroupName   AllCalls    RecordedCalls
01/08/2015  1         2750001  Sales      1          AllUsers    50          49
01/08/2015  1         2750001  CustServ   1          AllUsers    25          25
01/08/2015  1         2750001  CustServ   2          Supervisors 10          9
01/08/2015  2         2851234  Payments   1          AllUsers    30          29

OutboundCalls O
Date        System    GroupID    GroupName    AllCalls    RecordedCalls
01/08/2015  1         1          AllUsers     65          65
01/08/2015  1         2          Supervisors  20          19
01/08/2015  2         1          AllUsers     30          30

我试图做到的是创建第三个表连接这两者结合起来,JoinedCalls和总数AllCallsRecordedCalls每一个DateSystemGroupID挑战之一GroupID是特定于System,因此存在多个GroupID = 1GroupID = 2等等。此外,InboundCalls I有一个额外的列OutboundCalls O没有,VDNVDNName可以有多个GroupID接听来自VDN 275001的呼叫,以及来自多个由同一GroupID处理的VDN的呼叫。我需要总计对日期01/08/2015,系统1和GroupID 1的所有调用。然后总计对日期01/08/2015,系统1,GroupID 2的所有调用。然后日期01/08/2015,系统2,GroupID1。依此类推。

我知道我需要从查询中删除VDN和VDNName,因为这两个表中都不存在。我尝试了两个select和UNION ALL,但是即使我没有选择VDN,也似乎为Date,VDN和GroupID的每种组合获取行。我也在使用GROUP BYDate,System,GroupID,所以我认为它将它们结合在一起。编辑:我也尝试过使用SUM(I.AllCalls + O.AllCalls),SUM(I.RecordedCalls + O.RecordedCalls),但是这导致了两者的疯狂增长。

上面的样本数据所需的输出:

JoinedCalls J
Date        System    GroupID    GroupName    AllCalls    RecordedCalls
01/08/2015  1         1          AllUsers     140         139
01/08/2015  1         2          Supervisors  30          28
01/08/2015  2         1          AllUsers     60          59

我是SQL自学的人,这意味着我的知识上肯定有很大的差距。请让我知道是否需要更多信息,并在此先感谢您的帮助!

安德烈·莫罗佐夫(Andrey Morozov)

试试这个:

create table InboundCalls (
    [Date] date,       
    [System] int,    
    VDN int,     
    VDNName varchar(50),   
    GroupID int,    
    GroupName varchar(50),  
    AllCalls int,    
    RecordedCalls int
);

create table OutboundCalls (
    [Date] date,       
    [System] int,      
    GroupID int,    
    GroupName varchar(50),  
    AllCalls int,    
    RecordedCalls int
);

insert into InboundCalls (
[Date], [System], VDN, VDNName, GroupID, GroupName, AllCalls, RecordedCalls) 
values
('01/08/2015', 1, 2750001, 'Sales', 1, 'AllUsers', 50, 49),
('01/08/2015', 1, 2750001, 'CustServ', 1, 'AllUsers', 25, 25),
('01/08/2015', 1, 2750001, 'CustServ', 2, 'Supervisors', 10, 9),
('01/08/2015', 2, 2851234, 'Payments', 1, 'AllUsers', 30, 29);

insert into OutboundCalls (
[Date], [System],  GroupID, GroupName, AllCalls, RecordedCalls) values
('01/08/2015',  1, 1, 'AllUsers', 65, 65),
('01/08/2015',  1, 2, 'Supervisors', 20, 19),
('01/08/2015',  2, 1, 'AllUsers', 30, 30);

select [date]
, [system]
, groupid
, groupname
, sum (allcalls) [allcalls]
, sum(recordedcalls) [recordedcalls]
from (
    select [date], [system], groupid, groupname, allcalls, recordedcalls
    from inboundcalls
    union all
    select [date], [system], groupid, groupname, allcalls, recordedcalls
    from outboundcalls
) as t
group by [date], [system], groupid, groupname;

结果

date        system  groupid groupname   allcalls    recordedcalls
-----------------------------------------------------------------
2015-01-08  1       1       AllUsers    140         139
2015-01-08  1       2       Supervisors 30          28
2015-01-08  2       1       AllUsers    60          59

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将两个不同的表联接在一起并合计为第三个表

来自分类Dev

如何将两个表连接在一起以创建 JSON | PHP

来自分类Dev

如何修复将两个表连接在一起的错误

来自分类Dev

SQL如何通过特定的列将两个表连接在一起?

来自分类Dev

如何在MySQL中将三个表连接在一起?

来自分类Dev

SQL - 从两个相等的表中选择并显示与第三个值一起连接的两个值

来自分类Dev

如何连接两个表并按第三个表排序?

来自分类Dev

使用SQL语句将三个表连接在一起,以从每个表中获取数据

来自分类Dev

如何将一个表与来自不同查询的分组值连接在一起?

来自分类Dev

如何将两个图像连接在一起?

来自分类Dev

如何将两个壁板连接在一起以形成贯通?

来自分类Dev

如何将两个实体对象连接在一起?

来自分类Dev

如何将两个离子应用程序连接在一起?

来自分类Dev

我正在尝试将三个表连接在一起,并将2个不同的列合并为多行

来自分类Dev

如何将一个表中另一个表具有多个ID的两个表联接在一起?

来自分类Dev

将两个表连接在一起并在一个表中包含多个结果

来自分类Dev

如何将2个表和更新列连接在一起

来自分类Dev

如何将三个表的值加在一起?

来自分类Dev

Microsoft SQL Server:如何将这三个表放在一起?

来自分类Dev

将两个SQL查询中的值加在一起以创建第三个值

来自分类Dev

Javascript将两个输入值加在一起并在单击按钮时在第三个位置显示答案

来自分类Dev

MySQL-如何使用(LEFT)JOIN通过一个表将两个表连接在一起?

来自分类Dev

使用第三个表(SQL)连接两个表

来自分类Dev

连接两个表+第三个表作为条件列

来自分类Dev

如何将列名完全相同的两个表与具有唯一列名的第三个表连接起来以创建新视图?

来自分类Dev

SQL从同一表中选择两个最大行,并与第三个表连接

来自分类Dev

将2个不同的表连接到第三个表

来自分类Dev

使用INNER JOIN将两个表合并为第三个表

来自分类Dev

将两个表中的值插入第三个表中

Related 相关文章

  1. 1

    如何将两个不同的表联接在一起并合计为第三个表

  2. 2

    如何将两个表连接在一起以创建 JSON | PHP

  3. 3

    如何修复将两个表连接在一起的错误

  4. 4

    SQL如何通过特定的列将两个表连接在一起?

  5. 5

    如何在MySQL中将三个表连接在一起?

  6. 6

    SQL - 从两个相等的表中选择并显示与第三个值一起连接的两个值

  7. 7

    如何连接两个表并按第三个表排序?

  8. 8

    使用SQL语句将三个表连接在一起,以从每个表中获取数据

  9. 9

    如何将一个表与来自不同查询的分组值连接在一起?

  10. 10

    如何将两个图像连接在一起?

  11. 11

    如何将两个壁板连接在一起以形成贯通?

  12. 12

    如何将两个实体对象连接在一起?

  13. 13

    如何将两个离子应用程序连接在一起?

  14. 14

    我正在尝试将三个表连接在一起,并将2个不同的列合并为多行

  15. 15

    如何将一个表中另一个表具有多个ID的两个表联接在一起?

  16. 16

    将两个表连接在一起并在一个表中包含多个结果

  17. 17

    如何将2个表和更新列连接在一起

  18. 18

    如何将三个表的值加在一起?

  19. 19

    Microsoft SQL Server:如何将这三个表放在一起?

  20. 20

    将两个SQL查询中的值加在一起以创建第三个值

  21. 21

    Javascript将两个输入值加在一起并在单击按钮时在第三个位置显示答案

  22. 22

    MySQL-如何使用(LEFT)JOIN通过一个表将两个表连接在一起?

  23. 23

    使用第三个表(SQL)连接两个表

  24. 24

    连接两个表+第三个表作为条件列

  25. 25

    如何将列名完全相同的两个表与具有唯一列名的第三个表连接起来以创建新视图?

  26. 26

    SQL从同一表中选择两个最大行,并与第三个表连接

  27. 27

    将2个不同的表连接到第三个表

  28. 28

    使用INNER JOIN将两个表合并为第三个表

  29. 29

    将两个表中的值插入第三个表中

热门标签

归档