2016-09-21 3 views
0

I 먼저 쿼리 예를 들어이 (ararnr = 문서 번호) 번째 질의 검색하는 제 쿼리로부터 제 칼럼의 결과를 사용하나 개의 질의에 다른 테이블 (2 개)로부터의 SQL의 결합

Select ararnr,ararir,aoarom from ar left join ao ON AR.ARARNR=AO.AOARNR WHERE AR.ARARKD=1389 

다른 테이블

Select votgan, sum(ststan) as totalStock from vo INNER JOIN st on vo.voarnr=st.starnr where voarnr = ararnr 

어떻게 둘을 결합 할 수 있습니까?

참고 : 첫 번째 검색어의 모든 예술가가 두 번째 검색어에서 발견되는 것은 아니지만 내 결과에서 꼭 필요한 작품입니다.

결과에서 두 쿼리의 열이 필요합니다.

EDIT 예를 들어

:

첫 번째 쿼리가 문서 번호와 설명을 반환

 
+---------+--------------+ 
| ararnr | totalstock | 
+---------+--------------+ 
| a123456 |  12  | 
| b123456 |    | 
||  6  | 
+---------+--------------+ 

:

 
+---------+--------------+ 
| ararnr | aoarom | 
+---------+--------------+ 
| a123456 | description1 | 
| b123456 | description2 | 
|| description3 | 
+---------+--------------+ 

초 쿼리가 그 기사에 대한 totalstock을 반환합니다 초주의 이 테이블에는 articlenumber가 없으므로 값을 반환하지 않습니다.

내 결과에 해당 설명과 재고가있는 articlenumber를 받고 싶습니다.

 
+---------+--------------+-----------+---------+ 
| ararnr | aoarom | totalStock| vovoan | 
+---------+--------------+-----------+---------+ 
| a123456 | description1 |  12 | 2  | 
| b123456 | description2 |   | 1  | 
|| description3 |  6 |   | 
+---------+--------------+-----------+---------+ 

나는 DB2

SECOND 편집에 SQL을 사용하고 첫 번째 쿼리가 아칸소 테이블 에서 일부 문서 번호 (ararnr)을 선택하고 (해당 설명을 찾을 수

aoarom) 다른 테이블 ao.

두 번째 쿼리는 두 differend 테이블 VO과 첫 번째 쿼리에서 발견 된 문서 번호에 대한 에서 주식 (vovoan 및 합계 ststan)를 찾습니다.

결과

는 VO와 세인트

+0

의 도움으로 할 수 있는가? 두 가지 선택에 대한 샘플 결과와 결합 된 결과를 표시하십시오. – jarlh

답변

1

나는 완전히 당신이 요구하는지 이해할 수 없다에서 주식을 해당과 설명 상응하는 문서 번호가 있어야하지만, 또 다른 당신을 도울 수있다 가입 할 수 있습니다.

예 :

SELECT ar.ararnr, ar.ararir, ar.ararom, vo.votgan, SUM(vo.ststan) as totalStock 
FROM ar LEFT JOIN ao ON [id=id] LEFT JOIN vo ON [id=id] 

나는 당신의 테이블 구조, 또는 당신이 정말 요구하는 것은, 이것이 내가 당신을 줄 수있는 최선의 응답이 무엇인지 알 수 없기 때문에

.

또한 당신이 찾고있는 무엇을 할 수 Combining 2 SQL queries and getting result set in one

0

당신은 테이블 구조와 원하는 결과를 게시 할 수 있다면 훨씬 더 완벽한 답변을 얻을하지만 ... 것

당신 두 번째 쿼리의 결과 집합으로 첫 번째 쿼리를 사용하고이 쿼리에 조인 할 수 있습니다.

Select 
    votgan, 
    sum(ststan) as totalStock 
from vo 
inner join (Select 
       ararnr, 
       ararir, 
       ararom 
      from ar 
      left join ao .....) z on vo.voarnr = z.ararnr 

편집 : 같은

Select 
    votgan, 
    sum(ststan) as totalStock, 
    z.ararnr, 
    z.aoarom 
from vo 
inner join (Select 
       ararnr, 
       ararir, 
       ararom 
      from ar 
      left join ao .....) z on vo.voarnr = z.ararnr 
+0

시도했습니다. 이것은 표 vo에있는 항목 만 리턴하는 것 같습니다. 나는 또한 예를 들어 ararnr 또는 aoarom을 얻는 방법을 모른다. 첫 번째 선택에서 추가하려고했지만 작동하지 않습니다 .... –

+0

위의 편집을 참조하십시오. – StevieG

+0

SUM (ststan)을 ststan으로 변경하면 코드가 작동하지만 물론 ststan의 합계를 얻지는 못합니다 .ststan의 합계가 명확히 필요합니다. SUM이 코드에있을 때 나타나는 오류 메시지 : SELECT GROUP BY가 아닌 COL NAME/FUNC 또는 COL NAME이있는 그룹이 없습니다. VOVOAN –

0

이 쿼리를 사용할 수 있습니다.

SELECT ar.ararnr, ar.ararir, ar.ararom, vo.votgan, SUM(vo.ststan) as totalStock 
FROM ar 
LEFT JOIN ao ON ao.ararnr = ar.ararnr 
LEFT JOIN vo ON vo.voarnr = ao.ararnr 
+0

시도했지만 오류가 발생했습니다 : "KEYWORD LEFT의 불법 사용; FETCH LIMIT OFFSET OPTIMIZE로 스킵 대기 사용 예상 " –

0

당신이 데이터베이스로 SQL Server를 사용하는 경우는 다음이 어떻게 결합 OUTER APPLY

SELECT ararnr,aoarom ,temp.totalStock 
FROM ar 
LEFT JOIN ao ON AR.ARARNR=AO.AOARNR 
OUTER APPLY(
    SELECT sum(ststan) as totalStock 
    FROM vo 
    INNER JOIN st on vo.voarnr=st.starnr 
    where voarnr = ar.ararnr 
)temp 
WHERE AR.ARARKD=1389 
+0

DB2에서 sql을 사용하고 있는데 외부 적용을 지원하지 않는 것 같습니다. –