2010-04-27 71 views
0

我试图从MS Access中内置的两个单独的SQL查询的结果中获取AVERAGE。第一个SQL查询拉动最大的唱片:获取两个SQL Access查询的AVG

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; 

第二个SQL查询拉动第二大纪录:

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; 

这两个查询工作的伟大,我只是需要拉动的的AVERAGE一些帮助这两个查询的结果合为一体。谢谢。

回答

0

如何

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

感谢Remou,这实际上是一个巨大的帮助!运行这个查询,是否阻止我拉动其他字段,或者我只能得到这个值? – user326856 2010-04-27 13:45:44

+0

您可以获得其他字段,ORDER BY控制前两个字段。请注意,如果行具有相同的值,TOP n将选择多于n。如果您需要其他字段,则它们必须位于GROUP BY或类似于外部查询中。 – Fionnuala 2010-04-27 14:24:27

0

联合这些查询和平均记录

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

试过了。我得到“此操作不允许在子查询中”错误。 – user326856 2010-04-27 13:17:04