2013-03-13 8 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 

Это мое внешнее соединение, его для двух операторов выбора. Не для таблиц. Но те выберите заявления дает выше результатов (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

+1

Также возможно опубликовать неверные результаты - возможно, это будет возможно определить проблему с вывода – GHC

+0

Вы используете внутреннее соединение в подзапросах - это специально? И схема, которую вы опубликовали, точно не соответствует запросу ... – PinnyM

ответ

1

Гадание вы забываете сливаться идентификаторы, попробуйте

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

спасибо. Это хорошо работает – cdev

+0

добро пожаловать! –

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

1

Выберите CONCAT (t1.value1, t2.value2), как totalvalue

С t1 t2 присоединиться где t1.Id = t2.Id

Если я понимаю, что вы просите, это должен помочь.

+0

спасибо. Я попробую это также – cdev

Смежные вопросы