2013-03-13 16 views
-2

我有两个表这样加入表使用不同的数据行

T1

id value1 
BMC 16 
EC 22 
LLU 60 
MC 274 
UHC 54 
UHS 28 

T2

id value2 
BMC 5 
e900 4 
EC 7 
LLU 2 
MC 1 

我怎么能拿使用SQL Server这一点放?我也使用了全外连接。但它没有给我正确的结果

BMC 16 5 
EC 22 7 
LLU 60 2 
MC 274 1 
UHC 54 
UHS 28 
e900  4 

这是我的外连接,它的两个select语句。不适用于桌子。但是,这些select语句给上面的结果(T1,T2)

SELECT * FROM 
(

SELECT b.EntityCode, COUNT('a') AS GroupCountUser1 FROM @TempUser a INNER JOIN OP_TB_TRN_Entity b 
ON a.Entity=b.EntityID 
GROUP BY b.EntityCode 
) t1 

FULL OUTER JOIN 

(SELECT b.EntityCode, COUNT('a') AS GroupCountUser2 FROM @TempUser1 a INNER JOIN OP_TB_TRN_Entity b 
ON a.Entity=b.EntityID 
GROUP BY b.EntityCode) t2 

ON t1.EntityCode = t2.EntityCode 
+2

[向我们展示您尝试过的](http://www.whathaveyoutried.com) – Kermit 2013-03-13 14:21:29

+1

也可能发布不正确的结果 - 可能会从输出中发现问题 – GHC 2013-03-13 14:23:41

+0

您正在使用子查询中的内部连接 ​​- 是故意的吗?并且您发布的架构不完全适合查询... – PinnyM 2013-03-13 14:25:50

回答

1

猜你忘了合并的ID,尝试

Select coalesce(A.Id, B.Id) id, 
    A.Value1, B.Value2 
From A Full Join B On A.Id = B.Id 
+0

谢谢。这很好, – cdev 2013-03-13 14:35:51

+0

不客气! – 2013-03-13 14:43:23

1
SELECT t1.value1, t2.value2 FROM t1 FULL OUTER JOIN t2 USING (id) 

适应您的代码以使用USING语法:

SELECT * FROM 
(

SELECT b.EntityCode, COUNT('a') AS GroupCountUser FROM @TempUser a INNER JOIN OP_TB_TRN_Entity b 
ON a.Entity=b.EntityID 
GROUP BY b.EntityCode 
) t1 

FULL OUTER JOIN 

(SELECT b.EntityCode, COUNT('a') AS GroupCountUser FROM @TempUser1 a INNER JOIN OP_TB_TRN_Entity b 
ON a.Entity=b.EntityID 
GROUP BY b.EntityCode) t2 

USING (EntityCode) 

另一个想法是,你实际上试图做一个UNION ...

SELECT b.EntityCode, COUNT('a') AS GroupCountUser FROM @TempUser a JOIN OP_TB_TRN_Entity b 
ON a.Entity=b.EntityID 
GROUP BY b.EntityCode 

UNION 

SELECT b.EntityCode, COUNT('a') AS GroupCountUser FROM @TempUser1 a JOIN OP_TB_TRN_Entity b 
ON a.Entity=b.EntityID 
GROUP BY b.EntityCode 

ON t1.EntityCode = t2.EntityCode 
+0

感谢您的代码,以提高我的知识 – cdev 2013-03-13 14:36:11

1

选择CONCAT(t1.value1,t2.value2)作为总价值

从T1 T2加入其中t1.Id = t2.Id

如果我理解你问,这是什么应该有帮助。

+0

谢谢。我也会试试这个 – cdev 2013-03-13 14:37:05