我正在为我们的会计部门开展一个项目,我遇到了以下问题。我们在MSAccess DB中有两个表,其中包含税务数据。这个过程是我们每月收到一个带有新税务信息的文件。数据更改的唯一时间是进行税务更新但政府实体。因此,在任何给定月份,我们可以进行5次更改或5000次。
以下查询的目标是将新数据与上个月的数据进行比较(在两个单独的表中)。但是,我被提示输入标准,我不知道为什么。理想情况下,查询将运行并返回两个表之间的任何差异。
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));
我也建议如何完全修改此查询,因为我假设有更好的方法。提前谢谢!
答案 0 :(得分: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)
如果仍然提示您输入参数,则可能是拼写错误的字段名称。