2012-12-11 3 views
2

해결 방법이 있는지 알고 싶습니다. 같은 서버에있는 4 개의 데이터베이스에 모두 4 개의 테이블이 있습니다. 모두"Union All"을 사용하여 데이터베이스 간 쿼리 사용

Pnl_NM_2012 데이터베이스에 Pnl_IL_2012 데이터베이스 dbo.NM_Membership에서

dbo.IL_Membership

나는 하나 개의 데이터 집합으로 각 테이블에서 집계 된 데이터 집합을 결합하려는, 그러나 나는 (사용의 사용을 만들려고 노력 해요 [Pnl_IL_2012] -> Go) 각 집계 쿼리에 대한 데이터를 가져 와서 시도합니다.

select * from 
(USE [Pnl_IL_2012] 
GO 
select 'IL' as PlanID, sum(Contracts_Hlth) as PROD_Contracts_Hlth from dbo.IL_Membership where [month] between '2012-09-01' and '2012-10-31') Q1 

노조 나는 이러한 오류를 얻을 모든

select * from 
(USE [Pnl_NM_2012] 
GO 
select 'NM' as PlanID, sum(Contracts_Hlth) as PROD_Contracts_Hlth from dbo.NM_Membership where [month] between '2012-09-01' and '2012-10-31') Q2 

:

Msg 156, Level 15, State 1, Line 2 
Incorrect syntax near the keyword 'USE'. 
Msg 102, Level 15, State 1, Line 1 
Incorrect syntax near ')'. 
Msg 156, Level 15, State 1, Line 5 
Incorrect syntax near the keyword 'USE'. 
Msg 102, Level 15, State 1, Line 1 
Incorrect syntax near ')'. 

누구나 노동 조합을 얻을 수있는 방법이 모든 데이터베이스에서 작동하는? 나는 단지 노동 조합에 가입 할 필요가 없다 ...

답변

2

GO은 쿼리의 중간에 사용할 수 없으므로 배치의 끝을 알린다.

대신 사용하여 테이블을 참조 three part name :

select 'IL' as PlanID, sum(Contracts_Hlth) as PROD_Contracts_Hlth 
from Pnl_IL_2012.dbo.IL_Membership 
where [month] between '2012-09-01' and '2012-10-31' 

union all 

select 'NM' as PlanID, sum(Contracts_Hlth) as PROD_Contracts_Hlth 
from Pnl_NM_2012.dbo.IL_Membership 
where [month] between '2012-09-01' and '2012-10-31' 
+0

너무 감사 :

Pnl_IL_2012.dbo.IL_Membership 

는 당신에게 다음 쿼리를주기! 방금 사용했는데 정확히 내가 필요로하는 것이 었습니다. – digitalcb