2013-10-18 3 views
0

Microsoft Access에서 두 개의 독특한 테이블을 결합하려고 시도하고 있으며 인터넷에서 많은 브레인 스토밍 및 검색을 수행 한 후에도이를 수행 할 수 없었습니다.중복으로 두 테이블 조인

두 테이블은

Spend 
+-------------+--------+-------+-------+ 
|  Country | Metal | Month | Spend | 
+-------------+--------+-------+-------+ 
|  China | Iron | Jan | 100 | 
|  China | Iron | Feb | 200 | 
|  China | Iron | March | 300 | 
|  India | Iron | Jan | 400 | 
|  India | Copper | April | 500 | 
|  Spain | Zinc | June | 600 | 
+-------------+--------+-------+-------+ 

Export 
+-------------+-------+------+--------+ 
|  Country | Metal | Year | Export | 
+-------------+-------+------+--------+ 
|  China | Iron | 2001 | 2,000 | 
|  India | Iron | 2002 | 4,000 | 
|  India | Iron | 2003 | 5,000 | 
|  Spain | Zinc | 2011 | 3,500 | 
|  Spain | Zinc | 2012 | 4,000 | 
|  Spain | Zinc | 2013 | 9,000 | 
+-------------+-------+------+--------+ 

원하는 결합 표 귀하의 의견 테이블은 직선 선택 쿼리를 얻을 것이다 가장 가까운 감안할 때

+-------------+--------+-------+-------+------+--------+ 
|  Country | Metal | Month | Spend | Year | Export | 
+-------------+--------+-------+-------+------+--------+ 
|  China | Iron | Jan | 100 | 2001 | 2,000 | 
|  China | Iron | Feb | 200 |  |  | 
|  China | Iron | March | 300 |  |  | 
|  India | Iron | Jan | 400 | 2002 | 4,000 | 
|  India | Iron |  |  | 2003 | 5,000 | 
|  India | Copper | April | 500 |  |  | 
|  Spain | Zinc | June | 600 | 2011 | 3,500 | 
|  Spain | Zinc |  |  | 2012 | 4,000 | 
|  Spain | Zinc |  |  | 2013 | 9,000 | 
+-------------+--------+-------+-------+------+--------+ 
+2

전체 테이블 인 경우 계속 작동하지 않습니다. 원하는 출력을 얻을 수 없습니다. 'spend' 테이블에'year' 컬럼이 있다면, 괜찮을 것입니다. 그것이 그렇듯이, 인도에 대한 2002 년 철 수출은 1 월 지출과 관련이 있다고 말할 수있는 방법이 없습니다 400. 스페인 항목에 대한 동일한 문제. – StevieG

+0

안녕 스티비. 감사. 2002 년이나 2003 년의 지출이 Jan과 400 년의 지출과 관련이 있고, 마찬가지로 스페인의 경우 6 월의 지출은 600 년 중 어느 것이 든 그 다음에 올 수 있습니다. –

+0

요점은 Gord에서 얻은 답이 보여 주듯이 테이블 구조를 가질 수 없다는 것입니다. 이러한 결과에서 볼 수있는 것은 중복되지 않으며 스키마에 따라 고유 한 행입니다. – StevieG

답변

1

SELECT 
    Spend.Country, 
    Spend.Metal, 
    Spend.Month, 
    Spend.Spend, 
    Export.Year, 
    Export.Export 
FROM 
    Export 
    RIGHT JOIN 
    Spend 
     ON (Export.Metal = Spend.Metal) 
     AND (Export.Country = Spend.Country) 
ORDER BY 
    Spend.Country, 
    Spend.Metal, 
    CDate("2010-" & [Spend].[Month] & "-01"), 
    Export.Year; 
입니다 spendexport 있습니다

해당 쿼리는

0123을 반환합니다.
Country Metal Month Spend Year Export 
------- ------ ----- ----- ---- ------ 
China Iron Jan  100 2001 2000 
China Iron Feb  200 2001 2000 
China Iron March 300 2001 2000 
India Copper April 500    
India Iron Jan  400 2002 4000 
India Iron Jan  400 2003 5000 
Spain Zinc June  600 2011 3500 
Spain Zinc June  600 2012 4000 
Spain Zinc June  600 2013 9000 

... 지정한 행이 포함됩니다. 그러나 중복 된 Month/Spend 및 Year/Export 값을 한 행에서 다음 행으로 억제하지는 않지만 보고서에서 수행 할 수 있습니다.

+0

안녕하세요 고든. 도와 주셔서 정말로 고맙습니다. 그러나, 저를위한 주요 문제점은 결과 테이블에있는 지출 및 수출 숫자의 중복을 피하는 것입니다. 내가 할 수있는 방법이 있니? 당신의 대답을 기대합니다. –

+0

@arpangupta 글쎄, 당신은 그 쿼리를 테이블 만들기 쿼리로 변환하고, 결과를 포함하는 테이블을 만든 다음, 몇몇 VBA 루핑 코드를 사용하여 그 중복을 제거 할 수 있습니다. 그러나 이러한 결과로 무엇을 할 것입니까? –