2016-10-05 3 views
1

다음은 내가 가지고 있고 무엇을 찾고 있는지 설명하는 그림입니다. Tables and data describing the question.Access 2010에서 "빈칸 채우기"에 대한 업데이트 쿼리를 작성하려면 어떻게합니까?

이것은 원래 매우 간단한 업데이트 쿼리처럼 보였지만 쿼리가 작동하는 방식을 이해하지 못한다는 것이 입증되었습니다. 누군가가 tblImport.Addtl_Initiator의 모든 데이터를 tblEntries.Initiator 아래의 해당 공백으로 이동하고 tblImport.Addtl_Date_Initiated의 데이터를 tblEntries.Date_Initiated 아래의 해당 공백으로 이동하는 데 필요한 SQL을 설명 할 수 있습니까? 본질적으로 데이터를 왼쪽의 한 열로 이동하지만 다른 테이블로 옮깁니다.

추가 정보 : 그림에 표시되지 않은 각 테이블에는 고유 한 ID 필드가 있습니다.

답변

0

뉴질랜드로보십시오.

UPDATE tblentries 
INNER JOIN tblimport 
ON tblentries.eid = tblimport.eid 
AND tblentries.initiator = tblimport.initiator 
AND tblentries.date_initiated = tblimport.date_initiated 
SET tblentries.initiator = nz(tblimport.initiator, tblimport.addtl_initiator), 
tblentries.date_initiated = nz(tblimport.date_initiated, import.addtl_date_initiated) 

이 링크는 또한 도움이 될 수 있습니다 coalesce alternative in Access SQL

+0

를 지원하지 않습니다 "쿼리 정의의 SELECT 목록에 별칭 '기자'에 의한 순환 참조를." – UnseenSpecter

+0

이제 시도하십시오. AS – kbball

+0

다음의 별칭 이름이 업데이트되었습니다. 그러면 데이터가 세 개의 필드로 올바르게 쿼리됩니다. 왜 이전 코드와 다르게 작동했는지 확신 할 수 없습니다 ... 이제 tblEntries를 쿼리와 일치하도록 업데이트하는 방법은 무엇입니까? – UnseenSpecter

0

사용 IsNull은 공백이 아닌 값을 얻을 수 있습니다 :

SELECT 
    IsNull(Initiator, Addtl_Inititator) AS Initiator, 
    IsNull(Date_Initiated, Addtl_Date_Initiated) AS Date_Initiated, 
FROM 
    tblImport 
+0

ISNULL 내가 오류 얻을 액세스 2010 – kbball

관련 문제