2016-11-26 66 views
0

我正在使用MS Access查詢。我有一個價格表,其中有幾個項目與實際發票數據相匹配,以查找差異。讓我具體說一下。價目表可以有重複的項目編號,但它們之間唯一不同的是頻率(在這個例子中它是墊子租賃)。下面是價格表數據的樣本:MS Access - 如果我找到匹配的記錄,則忽略記錄

price list

自帶的有,而是由項目編號列出的項目不頻率的發票數據。下面是來自於發票數據的樣本:

invoice data

我有當前設置爲返回支付的總的差異,從價格表計算的總查詢。查詢僅匹配物料編號並返回差異[總價格] - [價格從價格清單*數量]。下面是該查詢返回當前的數據:

enter image description here

我想讓查詢做,如果有問題,只返回一個記錄,這意味着收費發票上的價格是不匹配的任何價目表價格。如果發票實際上有頻率數據,這不成問題。但是,由於發票沒有,所以我需要查看發票單價並查看它是否與價目表中的任何價格相匹配。如果有,我沒有問題。在上面的例子中,發票#1不需要顯示,因爲1.80美元的單價與價目表中的雙週價格相匹配,並且發票#2不需要顯示,因爲1.20美元的單價與每週價格相匹配從價目表中。一個問題是發票#3,因爲2.70美元的單價與價目表上的該項目的任何價格都不匹配。現在,我應該使用什麼價格來計算差價?我可以使用最小值或最大值或最接近值,該部分並不重要,我只需要提出方法和查詢以僅返回與價目表中的任何價格都不匹配的記錄。

讓我們以最接近的價格去計算差異。如果我使用,然後將查詢應返回的唯一記錄是:

enter image description here

希望這是有道理的。最後,我試圖做的是獲取發票記錄,掃描價目表以查找價格是否匹配,如果沒有,則返回一個記錄,使用最接近的金額計算差額。如果你不認爲這可以通過設計查詢來完成,那麼讓我知道,也許我可以寫一個小方法。

預先感謝您的答案!

+0

所以,你基本上想要一個完整的報告,只是收取價格,不符合價格表 - 正確嗎? – tahwos

+0

是的,這是正確的 –

回答

1

您可以針對報價執行查詢,並在單價上加入一個左連接,保留報表中的所有記錄。然後過濾掉單價中的任何空字段。

然後您的超額付款,只是一個表達式,從另一個減去。即「Overpayment:(ReportPrice - UnitPrice)* Units」

你也許可以用一個查詢做到這一點,但如果你想使用兩個查詢,它不會損害任何東西。

+0

謝謝,我現在有一個查詢的組合,我相信工程。爲了得到「最接近」的價格,我首先計算了初步的超額付款,並取得了這個最低限額。然後我把這個差額與獲得最終記錄的差額相匹配。 –