0

私は経理部門のプロジェクトに取り組んでおり、以下のクエリで行き詰まりました。MSAccess DB に税データを含む 2 つのテーブルがあります。このプロセスでは、新しい税務情報が記載されたファイルを毎月受け取ります。データが変更されるのは、税の更新が行われたときだけですが、政府機関です。したがって、任意の月に 5 回または 5000 回の変更を行うことができます。

以下のクエリの目的は、新しいデータと先月のデータを (2 つの別々のテーブルで) 比較することです。ただし、基準を入力するように求められますが、その理由がわかりません。理想的には、クエリが実行され、2 つのテーブルの違いが返されます。

SELECT newtax.[zipcode],
       newtax.city,
       newtax.county,
       newtax.state,
       newtax!combinedsalestax - oldtax!combinedsalestax AS Change,
       newtax.combinedsalestax,
       oldtax.combinedsalestax
FROM   oldtax
       INNER JOIN newtax
               ON ( oldtax.[zipcode] = newtax.[zipcode] )
                  AND ( oldtax.city = newtax.city )
                  AND ( oldtax.county = newtax.county )
WHERE  (( ( [newtax]![combinedsalestax] - [oldtax]![combinedsalestax] ) <> 0)); 

より良い方法があると想定しているため、このクエリを完全に変更する方法についての提案も受け付けています。前もって感謝します!

4

1 に答える 1

0

感嘆符はフィールドではなくコントロール用です。null (Nz) のチェックは良い考えかもしれません。

SELECT newtax.[zipcode],
       newtax.city,
       newtax.county,
       newtax.state,
       newtax.combinedsalestax - oldtax.combinedsalestax AS Change,
       newtax.combinedsalestax,
       oldtax.combinedsalestax
FROM   oldtax
       INNER JOIN newtax
               ON ( oldtax.[zipcode] = newtax.[zipcode] )
                  AND ( oldtax.city = newtax.city )
                  AND ( oldtax.county = newtax.county )
WHERE  Nz(newtax.combinedsalestax,0) <> Nz(oldtax.combinedsalestax,0) 

それでもパラメーターの入力を求められる場合は、フィールド名のスペルが間違っている可能性があります。

于 2013-02-01T22:44:05.103 に答える