2014-01-07 5 views
-1

포럼을 1 시간 동안 검색했지만 비슷한 점을 발견하지 못했습니다.SQL 두 개의 매개 변수가있는 두 테이블 결합

나는이 문제가있다 : 나는 두 개의 칼럼 ID와 DATE를 비교하기를 원한다. 두 테이블 모두에서 동일하다면 그 옆에있는 테이블 2의 번호를 넣고 싶다. 그러나 그것이 동일하지 않으면 나는 날짜에 연간 할당량을 채우고 싶다. 나는 Access에서 일하고있다.

id|date|state_on_date 
1|30.12.2013|23 
1|31.12.2013|25 
1|1.1.2014|35 
1|2.1.2014|12 
2|30.12.2013|34 
2|31.12.2013|65 
2|1.1.2014|43 

표 2

id|date|year_quantity 
1|31.12.2013|100 
1|31.12.2014|150 
2|31.12.2013|200 
2|31.12.2014|300 

내가 싶어 :

내가 시도 3

id|date|state_on_date|year_quantity 
1|30.12.2013|23|100 
1|31.12.2013|25|100 
1|1.1.2014|35|150 
1|2.1.2014|12|150 
2|30.12.2013|34|200 
2|31.12.2013|65|200 
2|1.1.2014|43|300 

조인 테이블과 포럼을 읽고 있지만 찾을 수 없습니다 솔루션 .

답변

0

이걸 찾으십니까?

SELECT id, date, state_on_date, 
(
    SELECT TOP 1 year_quantity 
    FROM table2 
    WHERE id = t.id 
    AND date >= t.date 
    ORDER BY date 
) AS year_quantity 
    FROM table1 t 

출력 : 여기에

 
| ID |  DATE | STATE_ON_DATE | YEAR_QUANTITY | 
|----|------------|---------------|---------------| 
| 1 | 2013-12-30 |   23 |   100 | 
| 1 | 2013-12-31 |   25 |   100 | 
| 1 | 2014-01-01 |   35 |   150 | 
| 1 | 2014-01-02 |   12 |   150 | 
| 2 | 2013-12-30 |   34 |   200 | 
| 2 | 2013-12-31 |   65 |   200 | 
| 2 | 2014-01-01 |   43 |   300 | 

그것은 SQL Server 용의하지만 MS Accesss에서 잘 작동합니다 SQLFiddle 데모입니다.

+0

나는 그것을 시도했지만 오류가 발생합니다. : http://postimg.org/image/q4671b7oz/ – Chaler

+0

MS Access는 오류를 발생시키는 별칭 앞에 'AS'가 있습니다 .Microsoft Access는 MySQL 또는 SQL Server와 달리 'AS'가없는 열 별칭을 좋아하지 않습니다. AS year_quantity'. 업데이트 된 답변보기. 테스트를 거쳤으며 정상적으로 작동합니다. – peterm

+0

정말 대단히 감사합니다.이 테이블에 대한 추가 질문이 있는데, 여기에 다른 질문을 추가 할 수 있습니까? 3 행의 변경 사항을 추적하기 위해 5 행을 추가하고 싶습니다. 5 행에서 위에서 아래로 가지런 히하고 싶습니다. 차이점 23 | -2 (23-25) | -10 (25-35) | 23 (35- 12) | 34 | 34 | 65 | 65-43 그것은 신분증과 날짜를 기반으로합니다. – Chaler