2012-12-05 3 views
0

UNION으로 결합 된 2 개의 SELECT 문이 있습니다. 모든 결과가 한 행에서 다음 순서로 쌓이는 대신 두 번째 SELECT 문의 결과가 필요합니다./열이 첫 번째 SELECT 문의 결과/열 옆에 추가됩니다.MySQL Union : 결과 열 나란히보기

두 가지 쿼리가 있습니다. 아마 간단한 피드백만으로 충분할 것이다.

QUERY 그 왼쪽/오른쪽 테이블을 조인 후 id 컬럼에 의해 당신은 임시 테이블에 결과를 넣어 시리얼 열을 추가 할 수 있습니다 1

select  
     LEFT(A.F_ANOTRIMESTRE, 4) Year_Max, 

     RIGHT(A.F_ANOTRIMESTRE, 2) Quarter_Max, 

     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=03,'Enero a Marzo', 
     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=06,'Abril a Junio', 
     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=09,'Julio a Septiembre', 
     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=12,'Octubre a Diciembre', 
     '') 
    ))) Quarter_Name, 

     ROUND(A.POR_RENTABILIDAD, 2) Quarterly_yield_Max 

from  dr_rent_carteras_trimestres A 
where  A.ID_CARTERA = @ID_CARTERA 
And  A.IND_RENTABILIDAD = 1 
And  LEFT(A.F_ANOTRIMESTRE, 4) = (select MAX(left(F_ANOTRIMESTRE, 4)) - 0 
           from  dr_rent_carteras_trimestres 
           where  ID_CARTERA = @ID_CARTERA) 

QUERY 2

select  
     LEFT(A.F_ANOTRIMESTRE, 4) Year_Max_Less_One, 

     RIGHT(A.F_ANOTRIMESTRE, 2) Quarter_Max_Less_One, 

     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=03,'Enero a Marzo', 
     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=06,'Abril a Junio', 
     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=09,'Julio a Septiembre', 
     IF(RIGHT(A.F_ANOTRIMESTRE, 2)=12,'Octubre a Diciembre', 
     '') 
    ))) Quarter_Name, 

     ROUND(A.POR_RENTABILIDAD, 2) Quarterly_yield_Max_Less_One 

from  dr_rent_carteras_trimestres A 
where  A.ID_CARTERA = @ID_CARTERA 
And  A.IND_RENTABILIDAD = 1 
And  LEFT(A.F_ANOTRIMESTRE, 4) = (select MAX(left(F_ANOTRIMESTRE, 4)) - 1 
           from  dr_rent_carteras_trimestres 
           where  ID_CARTERA = @ID_CARTERA) 
+0

전체 답변을 기다리는 동안 http://stackoverflow.com/questions/4408273/join-two-sql-queries-side-by-side-with-no-column-common을 참조하십시오. – kush

+0

감사합니다. 나는 그것을 이미 보았지만 그것을 여기에 적용하는 방법을 알아낼 수 없었다. – nerikh

답변

1

.

여기에는 순수한 SQL 방식이 없습니다.

select tab1.a,tab1.b,tab1.c,tab2.a,tab2.b,tab2.c from 
(SELECT @rowno:[email protected]+1 as id,a,b,c from tab1 where something) as tab1 left join 
(SELECT @rowno:[email protected]+1 as id,a,b,c from tab2 where something) as tab2 on tab2.id=tab1.id 

을하지만 그 TAB1을 알고있는 경우에만 많은 행이있다 : mysql에서는이 liek 뭔가를 할 수 있습니다. 물론 먼저 계산할 수 있지만 복잡한 쿼리가됩니다.

귀하의 검색어에 가입하는 것이 확실하지 않습니다. 아마도 1 년을 기준으로 할 수 있습니까? 네가 더 잘 알 잖아.

+0

불행히도 내 SQL 기술 수준은 중급 초보자이며 구문에 익숙하지 않습니다. (... @rowno ... id, a, b, c로 – nerikh

+0

그냥 1,2,3, 등등. 당신이 올해 + 분기에 합류하기를 원하기 때문에 필요하지 않게 될 것입니다. – arheops