2010-04-27 5 views
0

Я пытаюсь получить AVERAGE из результатов двух отдельных запросов sql, построенных в MS Access. Первый запрос SQL тянет большую запись:Получить AVG из двух запросов 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; 

второй 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

+0

Вы можете получить другие поля, ORDER BY контролирует то, что должно быть двумя верхними. Обратите внимание, что TOP n будет выбирать больше n, если строки имеют одинаковые значения. Если вам нужны другие поля, они должны быть в GROUP BY или подобны во внешнем запросе. – Fionnuala

0

объединение этих запросов и усреднить набор записей

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

Пытался что. Я получаю ошибку «эта операция не разрешена в подзапросах». – user326856

Смежные вопросы