2016-11-26 1 views
0

MS Access 쿼리를 사용하고 있습니다. 불일치를 찾기 위해 실제 송장 데이터와 일치하는 여러 항목이있는 가격 목록이 있습니다. 내가 구체적으로 말하게. 가격 목록에는 중복 된 품목 번호가있을 수 있지만 그 중에서 유일한 차이점은 빈도 (이 예에서는 매트 렌털)입니다. 항목 번호로 나열된 항목이 아닌 주파수를 가지고 온다MS Access - 일치하는 레코드를 찾으면 레코드를 무시하십시오.

price list

송장 데이터 : 여기에 가격 목록 데이터의 샘플입니다. 나는 현재 지불 총의 차이와 가격 목록에서 계산 된 총을 반환하도록 설정 쿼리를

invoice data

: 여기에 오는 송장 데이터의 샘플입니다. 질의는 항목 번호를 매치하고 차이를 반환합니다. [Total Price] - [Price Price List * Quantity]. 다음은 쿼리가 현재 데이터를 반환하는 방법이다 : 나는 어떤 일치하지 않는 청구서에 부과되는 가격을 의미하는 문제가있을 경우에만 레코드를 반환한다 할 수있는 쿼리를 원하는 것은 enter image description here

가격 목록 가격. 인보이스에 실제로 빈도 데이터가있는 경우 문제가되지 않습니다. 그러나 송장이 없으므로 인보이스 단가를보고 가격 목록의 가격과 일치하는지 확인해야합니다. 만약 그렇다면 문제가 없습니다. 위의 예에서 인보이스 # 1은 $ 1.80 단가가 가격 목록의 격주 가격과 일치하기 때문에 표시 할 필요가 없으며 주당 $ 1.20 단가가 매주 가격과 일치하므로 인보이스 # 2를 표시 할 필요가 없습니다 가격 목록에서. 한 가지 문제는 $ 2.70 단가가 가격 목록의 해당 항목에 대한 가격과 일치하지 않기 때문에 인보이스 # 3입니다. 차이점을 계산하려면 가격 목록의 어떤 가격을 사용해야합니까? 최소값 또는 최대 값 또는 가장 가까운 값을 사용할 수 있습니다. 그 부분은별로 중요하지 않습니다. 단지 가격 목록의 가격과 일치하지 않는 레코드 만 반환하는 메서드와 쿼리를 필요로합니다. .

가장 가까운 가격으로 차이를 계산해 봅시다. 나는 그것을 사용하는 경우, 쿼리가 반환해야하는 유일한 기록은 다음과 같습니다

enter image description here

는 희망이 의미가 있습니다. 마지막으로 인보이스 레코드를 가지고 가격표를 검색하여 가격이 일치하는지 확인하고, 일치하지 않으면 가장 가까운 금액을 사용하여 차이를 계산하는 레코드를 반환합니다. 디자인 쿼리만으로이 작업을 수행 할 수 있다고 생각하지 않는다면 저에게 알려주세요. 아마도 작은 방법을 쓸 수 있습니다.

미리 답변 해 주셔서 감사합니다.

+0

기본적으로 요금표와 가격표가 일치하지 않는 전체 보고서를 원하십니까? – tahwos

+0

네, 맞습니다. –

답변

1

보고서의 모든 레코드를 유지하면서 단가로 왼쪽 조인을 사용하여 리포트 가격에 대한 쿼리를 실행할 수 있습니다. 그런 다음 단가에서 모든 null 필드를 필터링하십시오.

그러면 초과 지불은 하나의 식에서 하나를 뺍니다. 즉, "초과 지불 : (ReportPrice - UnitPrice) * 단위"

두 가지를 사용하려면 하나의 검색어로이 작업을 수행 할 수 있지만 아무런 해가 없습니다.

+0

고마워요. 이제는 내가 믿는 쿼리 조합이 있습니다."가장 가까운"가격을 얻으려면 먼저 예비 초과 지불을 계산하고이 금액을 최소로 사용했습니다. 그런 다음 최종 기록을 얻는 데있어 그 초과분을 초과 지급과 일치 시켰습니다. –

관련 문제