Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour un champ dans Microsoft Access à l'aide du résultat d'une requête SELECT avec des agrégats ?

Comment puis-je mettre à jour un champ dans Microsoft Access à l'aide du résultat d'une requête SELECT avec des agrégats ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 02:19:09815parcourir

How Can I Update a Field in Microsoft Access Using the Result of a SELECT Query with Aggregates?

Mettre à jour la requête à l'aide de la sous-requête SELECT

Lorsque vous travaillez avec Microsoft Access 2007, la mise à jour d'un champ avec le résultat d'une requête SELECT présente des défis. Bien qu'Access prenne en charge les requêtes SELECT dans les requêtes UPDATE, il interdit les agrégats dans la partie UPDATE.

Considérez l'exemple suivant :

Requête 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;

MISE À JOUR Requête :

UPDATE FUNCTIONS
 SET FUNCTIONS.Func_TaxRef = [Result of Select query]

Pour résoudre ce problème, une solution de contournement est nécessaire.

1. Convertir une requête SELECT en table :

Créez une requête nommée « Votre requête » avec la définition suivante :

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

Ensuite, exécutez une requête Créer une table :

SELECT YourQuery.* 
INTO MinOfTax_Code
FROM YourQuery

Cela crée une table nommée MinOfTax_Code contenant les résultats du SELECT requête.

2. Effectuer une requête UPDATE :

Maintenant, effectuez la requête UPDATE :

UPDATE MinOfTax_Code 
INNER JOIN Functions ON MinOfTax_Code.func_id = Functions.Func_ID 
SET Functions.Func_TaxRef = [MinOfTax_Code].[MinOfTax_Code]

En décomposant l'agrégation en une table distincte, Access permet la mise à jour réussie de la table Functions avec le résultat de la requête SELECT.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn