2013-03-11 8 views
0

프로그래밍에 초보자/초보자가 약간있어 내 순진함을 용서하십시오. MS Access 2013에는 표 1과 표 2의 두 가지 표가 있습니다. [표 1]. [필드 6]에 입력 된 값과 [표 2]. [필드 2]의 값을 비교하는 방법이 필요합니다. 일치하는 것이 발견되면 [Table 2]. [Field 3]에있는 해당 행 값을 취하여 [Table 1]. [Field 13]의 식에 사용합니다.표 1과 표 2 사이의 값을 일치시키는 방법, 표 2의 해당 값을 가져 와서 표 1의 식에서 사용하는 방법

"If"문을 사용했지만 비교할 두 테이블에 10 개의 잠재적 값이 있으므로식이 커지고 계산 시간이 오래 걸립니다. 특히 표 1은 수백/수천 개의 레코드를 가져 오기 시작합니다.

누군가 나를 가장 쉽고/깨끗한 방법으로 보여줄 수 있습니까?

EDIT - 요청 당 자세한 정보를 추가합니다.

우리는 상품의 트럭 적재 대, 철도 차량, 토트 백 등을 판매합니다. 그래서 우리가 계약을 맺을 때 우리는 트럭 2 대, 철도 차량 3 대, 컨테이너 10 대 등을 입력 할 것입니다. 이러한 운송 수단은 각기 다른 가중치를 가지며 가격이 달라/팔리는 경우도 있습니다 ($/파운드, $/메트릭 톤 등). .). transpot의 모드에 따라. 이 개념은 계약서에 입력되었을 때, [표 1]에 입력 된 운송 모드를보고, [필드 6]을 마스터 가중치 테이블 (표 2)과 비교하여 파운드 (pounds), 톤 (tons) 등의 운송 모드가 있었기 때문에 (이 변수를 'x'라고 부름), 새 필드에서 총 수익을 생성하기 위해 표 1의 다른 필드의 볼륨 및 가격과 함께 해당 번호를 사용할 수있었습니다 테이블 1 = "x"[볼륨] [가격].

예를 들어, 3 대의 트럭을 판매했다고 가정 해 보겠습니다. 트럭이 운송 모드로 들어갔을 때 트럭이 얼마나 많은 양 (46,000 파운드)을 조회 한 다음 그 숫자를 표현식에 사용합니다. 46,000 x 3 트럭 x $ 0.39/lb = $ 53,820.

쉘을 만들 수 있고 수익 필드에 표현식을 만들 수 있습니다. 변수 "x"(비교 된 테이블을 기반으로 한 가중치)를 "If"문을 포함하지 않고 단순히 등식 = "x"[볼륨] [가격]에 입력하는 방법을 알아낼 수 없습니다. 표현의 모든 10 가지 운송 수단. 테이블이나 쿼리를 사용하여 표현식에서 10 가지 논리적 테스트 대신 "x"를 다시 가져 오는 방법이 있다고 생각합니다.

+2

몇 가지 샘플 데이터와 예상 출력을 추가하면 도움이 될 수 있습니다. 이 질문을 파싱하는 데 어려움을 겪고 있습니다. – LittleBobbyTables

답변

0

이 SQL 문을 시도 할 수 있습니다 : 당신은 볼륨과 가격 곱하고자하는 경우

UPDATE [Table 1] INNER JOIN [Table 2] ON [Table 1].[Field 6]=[Table 2].[Field 2] SET [Table 1].[Field 13] = [Table 2].[Field 3];

당신은, [Table 2].[Field 3]* [Table 1].[Other field] 또는 필드의 수를 추가 할 수 있습니다.

WHERE [Table 1].[Field key] = "current_record_key"을 추가하여 현재 항목 만 업데이트 할 수도 있습니다. 그렇지 않으면 시간이 지남에 따라 가중치가 바뀌면 문제가 될 수있는 전체 표 1이 업데이트됩니다. 또 다른 선택은 WHERE [Table 1].[Field 13] IS NULL 일 경우 총 수익이 비어있는 필드 만 업데이트합니다.

+0

고맙습니다. 이것은 완벽하게 작동했습니다. WHERE 명령을 지적하면 별도의 제약 조건을 추가 할 수있어 매우 도움이되었습니다. – user2157163