2016-11-26 8 views
0

私はMS Accessクエリを使用しています。私は不一致を見つけるために実際の請求書データに一致するいくつかの項目を含む価格表を持っています。私は具体的になるようにしましょう。価格表には重複した品目番号を付けることができますが、唯一の違いは頻度です(この例ではマットレンタル)。ここでは価格表データのサンプルです:MS Access - 一致するレコードを見つけたらレコードを無視する

price list

に来る請求書データは項目番号ではなく、周波数によって記載されている項目があります。私は現在、支払った合計の違いと価格表から算出した合計を返すように設定し、クエリを持って

invoice data

:ここに来る請求書データのサンプルです。クエリは、商品番号と一致し、差異[合計価格] - [価格から価格リスト*数量]を返します。ここでは、クエリは、現在のデータを返す方法を示します。

enter image description here

私は、クエリが何をしたいのか請求書に課金価格はのいずれかにマッチされていないという意味、問題がある場合にのみ、レコードを返されます価格リスト価格。請求書に実際に頻度データがある場合、これは問題ではありません。ただし、請求書は含まれていないため、請求書の単価を見て価格表の価格と一致するかどうかを確認する必要があります。もしそうなら、私は問題はありません。上記の例では、$ 1.80の単価が価格表の2週間ごとの価格と一致し、$ 1.20の単価が週当たりの価格と一致するため、請求書#2が表示される必要がないため、請求書#1は表示する必要はありません価格表から。 1つの問題はインボイス#3です。なぜなら、$ 2.70の単価は価格表のその項目の価格と一致しないからです。差額を計算するには、価格表のどの価格を使用すればよいですか?私は最小値または最大値、または最も近い値を使うことができます。その部分は本当に重要ではありません。値リストにある値段と一致しないレコードだけを返すメソッドとクエリを用意する必要があります。

差額を計算するのに最も近い価格を考えてみましょう。私はそれを使用する場合、クエリは返す必要があります唯一のレコードは次のとおりです。

enter image description here

がうまくいけば、これは理にかなっています。最後に、私がしようとしているのは、請求書レコードをとり、価格表をスキャンして価格が一致するかどうかを調べ、そうでない場合は、最も近い金額を使って差額を計算するレコードを返します。これがちょうど設計クエリでできないと思うなら、おそらく私は小さな方法を書くことができます。

お返事ありがとうございます!

+0

だから、あなたは基本的に価格表の完全なレポートを望んでいます、それは価格リストと一致しません - 正しい? – tahwos

+0

はい、それは正しいです –

答えて

1

レポートのすべてのレコードを保持したまま、単価が左結合されたレポート価格でクエリを実行できます。 Unit Priceからnullフィールドを除外します。

あなたの過払いは、ただ一つの式であり、一方から他方を引きます。つまり、「超過支払い:(単価 - 単価)*単位」

これはおそらく1つのクエリで行うことができますが、2つのクエリを使用する場合は何も問題にはなりません。

+0

ありがとう、私は今私が働くと信じているクエリの組み合わせがあります。「最も近い」価格を得るために、私はまず予備の過払いを計算し、これを最小限に抑えました。それから、私は最終的な記録を得る上でその差額に過払いを合わせました。 –

関連する問題