2016-11-26 65 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

谢谢,我现在有一个查询的组合,我相信工程。为了得到“最接近”的价格,我首先计算了初步的超额付款,并取得了这个最低限额。然后我把这个差额与获得最终记录的差额相匹配。 –