使用 SELECT 子查询更新查询
使用 Microsoft Access 2007 时,使用 SELECT 查询的结果更新字段会带来挑战。尽管 Access 支持 UPDATE 查询中的 SELECT 查询,但它禁止 UPDATE 部分中的聚合。
请考虑以下示例:
SELECT 查询:
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]
要解决此问题,需要解决方法。
1.将 SELECT 查询转换为表:
使用以下定义创建名为“YourQuery”的查询:
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
然后,执行生成表查询:
SELECT YourQuery.* INTO MinOfTax_Code FROM YourQuery
这将创建一个名为 MinOfTax_Code 的表,其中包含 SELECT 的结果查询。
2.执行 UPDATE 查询:
现在,执行 UPDATE 查询:
UPDATE MinOfTax_Code INNER JOIN Functions ON MinOfTax_Code.func_id = Functions.Func_ID SET Functions.Func_TaxRef = [MinOfTax_Code].[MinOfTax_Code]
通过将聚合分解为单独的表,Access 允许使用以下命令成功更新 Functions 表: SELECT 查询的结果。
以上是如何使用带有聚合的 SELECT 查询结果更新 Microsoft Access 中的字段?的详细内容。更多信息请关注PHP中文网其他相关文章!