如何在Microsoft Access 2007中使用SELECT查询的结果UPDATE一个表的字段.
这是选择查询:
SELECT Min(TAX.Tax_Code) AS MinOfTax_Code FROM TAX,FUNCTIONS WHERE (((FUNCTIONS.Func_Pure)<=[Tax_ToPrice]) AND ((FUNCTIONS.Func_Year)=[Tax_Year])) GROUP BY FUNCTIONS.Func_ID;
这里是更新查询:
UPDATE FUNCTIONS SET FUNCTIONS.Func_TaxRef = [Result of Select query]
解决方法
那么看起来Access在UPDATE查询中无法进行聚合.但它可以在SELECT查询中进行聚合.所以创建一个如下定义的查询:
SELECT func_id,min(tax_code) as MinOfTax_Code FROM Functions INNER JOIN Tax ON (Functions.Func_Year = Tax.Tax_Year) AND (Functions.Func_Pure <= Tax.Tax_ToPrice) GROUP BY Func_Id
并将其另存为YourQuery.现在我们必须解决另一个Access限制. UPDATE查询无法对查询进行操作,但可以对多个表进行操作.所以让我们将查询转换成一个具有Make Table查询的表:
SELECT YourQuery.* INTO MinOfTax_Code FROM YourQuery
这将视图的内容存储在名为MinOfTax_Code的表中.现在你可以做一个UPDATE查询:
UPDATE MinOfTax_Code INNER JOIN Functions ON MinOfTax_Code.func_id = Functions.Func_ID SET Functions.Func_TaxRef = [MinOfTax_Code].[MinOfTax_Code]