2009-03-16 2 views
0

두 문을 일괄 처리하면 데이터가 병합 된 sql 명령 객체에 두 개의 테이블이 하나씩 반환됩니다. 제가 한 일은 두 번 검색하여 검색을 최적화하는 것입니다. 첫 번째는 한 세트의 데이터로, 두 번째는 다른 세트로 검색하는 것입니다. 그들은 같은 필드를 가지고 있으며 두 테이블의 모든 레코드를 보여주고 서로 추가해야합니다. 두 데이터 세트간에 데이터를 정렬 할 수 있도록 저장 프로 시저를 작성하는 것이 부족하기 때문에이 작업을 수행 할 방법을 생각할 필요가 없습니다.단일 데이터베이스 호출에서 두 테이블의 데이터를 같은 열로 병합하는 방법은 무엇입니까?

예 : 표 1에는 열 A와 B가 있으며 표 2에는 이러한 동일한 열이 있지만 데이터 소스는 다릅니다. 그런 다음 하나의 열에 만 존재하면 결과 집합에 추가되고 둘 다 존재하면 두 테이블간에 열 B가 합산되도록 테이블을 병합합니다.

데이터를 병합하지 않기 때문에 전체 외부 조인 작업과 동일하지 않습니다.

[편집] 여기

처럼 코드가 어떻게 표시되는지를 보여줍니다 : 나는 완전히 이해하고 있는지 확실하지 않습니다하지만 당신은 UNION에 대해 물어 것 같다

Select * From 
(Select ID,COUNT(*) AS Count From [Table1]) as T1 
    full outer join 
(Select ID,COUNT(*) AS Count From [Table2]) as T2 
    on t1.ID = T2.ID 
+0

코드를 게시하는 방법에 대해 ... –

답변

1

아마도 :

select table1.a, table1.b 
from table1 
where table1.a not in (select a from table2) 
union all 
select table1.a, table1.b+table2.b as b 
from table1 
inner join table2 on table1.a = table2.a 

편집 : 아마도 당신이 계산하기 전에 테이블을 unioning 혜택을 누릴 것입니다. 예 :

select id, count() as count from 
(select id from table1 
union all 
select id from table2) 
+0

두 가지 모두 좋은 방법입니다. 저는 이미 두 번째 작업을 했었지만 예제를 고맙게 생각합니다.) 두 번째 열을 그룹별로 정리하고 두 개의 열을 합산했습니다. 매력처럼 작동합니다. – Middletone

+0

두 번째 방법은 일부 hte 데이터가 손실되기 때문에 union이 아닌 union 만 사용해야합니다. – Middletone

0

SELECT A,B 
FROM tableX 
UNION ALL 
SELECT A,B 
FROM tableY 
2

아마도 UNION을 (를) 찾고 계십니까?

IE :

SELECT A, B FROM Table1 
UNION 
SELECT A, B FROM Table2 
0

을 수행하려면, 당신은 갈 것 :

SELECT * INTO TABLE3 FROM TABLE1 
UNION 
SELECT * FROM TABLE2 

제공 두 테이블이 같은 열이

0

나는 당신이이 찾고있는 것을 생각하지만, 나는 나는 확실하지 않다 당신의 언어를 정확하게 이해하십시오.

select id, sum(count) as count 
from (
    select id, count() as count 
    from table1 
    union all 
    select id, count() as count 
    from table2 
) a 
group by id 
관련 문제