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 ?
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!