2014-07-08 2 views
0

사과 이것이 초보자 용 질문이라면 나는 Access에서 SQL에 익숙하지 않고 나날로 배우고있다. 그러나 이것은 나에게서 멀어졌다. 유니온을 사용할 때마다 임시 테이블을 덮어 쓰는 Temp Table에 여러 개의 테이블을 삽입했습니다. 내가해야 할 일은 조인으로 다른 테이블을 연결하는 것입니다, 아래에 제가하려고하는 것이지만 작동하지 않습니다. 그리고이 물건을 알고있는 누군가가 그들의 눈을 지배 할 수 있기를 바라고 있었습니까?여러 개의 유니온을 사용한 SQL - Join 쿼리

"결과 테이블에 둘 이상의 자동 번호 필드가 허용되지 않습니다"라는 오류가 나타납니다.

SELECT * INTO [Temp Table] 
FROM Calender INNER JOIN ((Product INNER JOIN [Master Lookup] 
            ON Product.MASTER = [Master Lookup].Style) 
            INNER JOIN (SELECT * 
               FROM [Table1] 
               WHERE Week='4314' OR Week='4414' 
              UNION 
               SELECT * 
               FROM [Table2] 
               WHERE Week='4314' OR Week='4414' 
              UNION 
               SELECT * 
               FROM [Table3] 
               WHERE Week='4314' OR Week='4414' 
              UNION 
               SELECT * 
               FROM [Table4] 
               WHERE Week='4314' OR Week='4414' 
              ) AS a 
            ON [Master Lookup].Style = a.Style) 
      ON Calender.Week = a.Week 
ORDER BY a.Week; 

답변

0

난 당신이 소스 테이블에서 하나 개 이상의 Autonumber 필드가 생각, 당신은 long

SELECT CLng([auto_id]) AS ID, ... FROM ... 

참조로 변환해야합니다 Resultant tables not allowed to have more than one autonumber field!

+0

덕분에 빠른 응답을, 내가 지정하고있는 경우 CLng ([auto] _id)) 그러면 "Select *"를 작성하는 대신 추출해야하는 테이블의 모든 열을 지정해야한다는 뜻입니까? – marcus88

+0

@ marcus88 예,'select * '대신'select'에 모든 열을 지정해야 할까 봐 걱정됩니다. – Prisoner

+0

걱정하지 마세요, 나는 그 문제를 해결할 수 있다고 생각합니다. 나는 고정 된 코드를 앞으로 누군가를위한 답으로 여기에 넣을 것이다. 도와 주셔서 감사합니다! – marcus88