在一个表SQL中合并数据

时间:2015-12-08 09:58:41

标签: sql sql-server

我有2张桌子A,B

表A:

ID      Value1   Value2
------------------------
1000     10        25
1001      4        12
1002      2         6
1003      1         8

表B:

ID      Value3   Value4
------------------------
1000     51        12
1003      3        10

我需要的是显示以下结果:

ID     Value1   Value2   Value3   Value4
-----------------------------------------
1000    10       25       51       12
1001     4       12       NULL     NULL
1002     2        6       NULL     NULL
1003     1        8        3       10

我试过的查询:

SELECT I.AgentId AS AGENT
    ,COUNT(I.Indice) AS [Number of Inbound calls]
    ,AVG(I.WrapupDuration) AS [AVG Wrapup IN]
    ,COUNT(O.Indice) AS [Number of Out calls]
    ,AVG(O.WrapupDuration) AS [AVG Wrapup Out]
FROM [HN_Ondata].[dbo].[vwInboundCalls] I
LEFT JOIN [HN_Ondata].[dbo].vwOutboundCalls O
    ON I.AgentId = O.AgentId
GROUP BY I.AgentId

3 个答案:

答案 0 :(得分:1)

您只需要LEFT JOIN和下面的查询,您就不需要另一张桌子了:

SELECT *
FROM TABLE_A A
    LEFT JOIN TABLE_B B ON A.ID = B.ID

答案 1 :(得分:0)

您必须使用LEFT JOIN来实现目标。

SELCT * FROM TABELA LEFT JOIN TABLEB ON TABLEA.ID = TABLEB.ID

答案 2 :(得分:0)

您应该使用left join

SELECT 
     *
FROM 
     TABLEA T1
LEFT JOIN 
     TABLEB T2 
ON 
     T1.ID = T2.ID

LEFT JOIN关键字返回左表(table1)中的所有行,右表(table2)中的匹配行。当没有匹配时,结果在右侧为NULL。