Utilisation de SELECT dans une requête UPDATE dans Access
Dans Microsoft Access, l'exécution de mises à jour dans une base de données implique souvent l'utilisation d'une requête UPDATE. Toutefois, lorsqu'une mise à jour nécessite un résultat calculé à partir d'une requête SELECT distincte, l'approche simple peut ne pas suffire.
Envisagez deux scénarios :
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]
Dans Microsoft Access 2007, il n'est pas possible d'inclure directement des agrégats (par exemple, min, max) dans une requête UPDATE. Cependant, une solution de contournement consiste à utiliser les capacités des requêtes SELECT et Make Table.
Étape 1 : Créer une requête pour calculer l'agrégat
Construire une requête qui calcule l'impôt minimum code des tables TAX et FUNCTIONS en fonction de critères spécifiques et regroupe les résultats par Func_ID field :
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
Enregistrez cette requête sous YourQuery.
Étape 2 : Convertir la requête en table
Étant donné que les requêtes UPDATE ne peuvent fonctionner que sur les tables , utilisez une requête Créer une table pour stocker les résultats calculés dans une nouvelle table appelée MinOfTax_Code :
SELECT YourQuery.* INTO MinOfTax_Code FROM YourQuery
Étape 3 : Effectuer une requête UPDATE
Enfin, exécutez une requête UPDATE qui joint la table Functions à la table MinOfTax_Code et met à jour le champ Func_TaxRef :
UPDATE MinOfTax_Code INNER JOIN Functions ON MinOfTax_Code.func_id = Functions.Func_ID SET Functions.Func_TaxRef = [MinOfTax_Code].[MinOfTax_Code]
Cette solution de contournement vous permet d'utiliser les résultats d'une requête SELECT pour mettre à jour un champ dans une autre table dans Microsoft Access 2007.
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!