2010-04-27 6 views
0

J'essaie d'obtenir la MOYENNE à partir des résultats de deux requêtes sql distinctes construites dans MS Access. La première requête SQL tire le plus grand disque:Récupère l'AVG de deux requêtes SQL Access

SELECT DISTINCTROW Sheet1.Tx_Date, Sheet1.LName, Sheet1.Patient_Name, Sheet1.MRN, 
    Max(Sheet1.) AS [Max Of FEV1_ACT], 
    Max(Sheet1.FEF_25_75_ACT) AS [Max Of FEF_25_75_ACT] 
FROM Sheet1 
GROUP BY Sheet1.Tx_Date, Sheet1.LName, Sheet1.Patient_Name, Sheet1.MRN; 

La deuxième requête SQL tire le deuxième disque:

SELECT Sheet1.MRN, Sheet1.Patient_Name, Sheet1.Lname, 
    Max(Sheet1.FEV1_ACT) AS 2ndLrgOfFEV1_ACT, 
    Max(Sheet1.FEF_25_75_ACT) AS 2ndLrgOfFEF_25_75_ACT 
FROM Sheet1 
WHERE (((Sheet1.FEV1_ACT)<(SELECT MAX(FEV1_ACT) 
       FROM Sheet1))) 
GROUP BY Sheet1.MRN, Sheet1.Patient_Name, Sheet1.Lname; 

Ces deux requêtes fonctionnent très bien, j'ai juste besoin de l'aide sur tirer le AVERAGE du résultats de ces deux requêtes en un. Merci.

Répondre

0

Que diriez-vous

SELECT Avg(FEV1_ACT) FROM 
    (SELECT Top 2 FEV1_ACT FROM Sheet1 ORDER BY FEV1_ACT DESC) 
+0

Merci Remou, c'était vraiment une aide formidable! En exécutant cette requête, est-ce que cela m'empêche de tirer les autres champs ou est-ce que je peux seulement obtenir la valeur? – user326856

+0

Vous pouvez obtenir d'autres champs, ORDER BY contrôle ce que les deux premiers doivent être. Notez que TOP n sélectionnera plus de n si les lignes ont des valeurs égales. Si vous avez besoin d'autres champs, ils doivent être dans un GROUP BY ou similaire dans la requête externe. – Fionnuala

0

union ces requêtes et la moyenne des enregistrements

select avg(select field from table1 union select field from table2) 
+0

essayé. Je reçois une erreur "cette opération n'est pas autorisée dans les sous-requêtes". – user326856

Questions connexes