Sql 如何连接这两个表

Sql 如何连接这两个表,sql,sql-server-2008,Sql,Sql Server 2008,我有两张桌子: 表“一”: ServiceID, ApplicationCode, Success 1, 1, 2 1, 3, 2 2, NULL, 3 ServiceID, ApplicationCode, Failure 1, 1, 1 1, 2, 3 2, NULL, 4 3, NULL, 1 表“二”: ServiceID, ApplicationCode, Success 1, 1, 2 1, 3, 2 2, NULL, 3 ServiceID, ApplicationCode,

我有两张桌子:

表“一”:

ServiceID, ApplicationCode, Success
1, 1, 2
1, 3, 2
2, NULL, 3
ServiceID, ApplicationCode, Failure
1, 1, 1
1, 2, 3
2, NULL, 4
3, NULL, 1
表“二”:

ServiceID, ApplicationCode, Success
1, 1, 2
1, 3, 2
2, NULL, 3
ServiceID, ApplicationCode, Failure
1, 1, 1
1, 2, 3
2, NULL, 4
3, NULL, 1
我想收到结果表

列:

ServiceID, ApplicationCode, Success
1, 1, 2
1, 3, 2
2, NULL, 3
ServiceID, ApplicationCode, Failure
1, 1, 1
1, 2, 3
2, NULL, 4
3, NULL, 1
我正在使用SQLServer2008

我应该使用什么查询

已编辑:我希望通过ServiceID和ApplicationCode连接这两个表。

编辑2: 我尝试过的代码:

INSERT INTO #MidResult(ServiceID,ApplicationCode,SuccessCount,FailureCount)
SELECT case rtrim(ltrim(s.ServiceID)) WHEN NULL THEN f.ServiceID ELSE s.ServiceID END,s.ApplicationCode,s.SuccessCount,f.FailureCount
FROM #SuccessResult s
FULL JOIN #FailureResult f on f.ApplicationCode = s.ApplicationCode and s.ServiceID = f.ServiceID

请注意,ServiceID和ApplicationCode都应该匹配。

您可以使用以下选项:

select 
  coalesce(t1.serviceid, t2.serviceid) serviceid,
  coalesce(t1.ApplicationCode, t2.ApplicationCode) ApplicationCode,
  t1.Success,
  t2.failure
from table1 t1
full outer join table2 t2
  on t1.ServiceID = t2.ServiceID
  and isnull(t1.ApplicationCode, '') = isnull(t2.ApplicationCode, '')
order by serviceid, ApplicationCode

结果是:

| SERVICEID | APPLICATIONCODE | SUCCESS | FAILURE |
---------------------------------------------------
|         1 |               1 |       2 |       1 |
|         1 |               2 |  (null) |       3 |
|         1 |               3 |       2 |  (null) |
|         2 |          (null) |       3 |       4 |
|         3 |          (null) |  (null) |       1 |

我曾尝试连接两个表,但我总是从一个表或另一个表中缺少一些行,因此,当询问您尝试了什么时,这意味着您应该显示到目前为止的代码及其具体问题。有时另一个表中不存在ApplicationCode,因此,结果表中将缺少该行,那么您希望如何加入它们?您不能依赖ServiceID,因为它是重复的。你说“编辑:我希望通过ServiceID和ApplicationCode连接这两个表。”那么为什么要进行向下投票呢?行“2,NULL”应该变成一行:“2,NULL,3,4”