2014-09-22 2 views
0

У меня есть два рабочих запроса. Первый выбирает наблюдаемые температуры данного месяца. Второй выбирает среднее значение для каждого дня этого месяца.mysql объединить два запроса в один запрос

SELECT data, Tmax, Tmin, Mitjana, Pluja 
FROM $estacio 
WHERE data BETWEEN '2014-03-01' AND '2014-03-31' 

SELECT data, round(avg(Mitjana),1) 
FROM $estacio 
WHERE month(data)='03' 
group by day(data), month(data) 
order by data 

Я пытаюсь найти разницу между наблюдаемыми средами и нормальным средней и вставить в первый запрос в качестве нового столбца. (Mitjana is mean)

+0

Возможный дубликат [комбинировать запросы mysql по столбцам] (http://stackoverflow.com/questions/25729406/combine-mysql-queries-columnwise) – MrTux

ответ

0

Просто добавьте второй запрос к первому.

SELECT data, Tmax, Tmin, Mitjana, Pluja, (
    (SELECT NormalAvg FROM 
    (SELECT data, round(avg(Mitjana),1) AS NormalAvg FROM $estacio 
    WHERE month(data)='03' 
    group by day(data), month(data) order by data) AS NormalAvgList 
    WHERE NormalAvgList.data=est.data LIMIT 1)-Mitjana) AS Diff 
    FROM $estacio AS est WHERE data BETWEEN '2014-03-01' AND '2014-03-31' 

Протестировано с SQL Fiddle.

+0

Благодарим вас за ответ. К сожалению, я не могу извлечь пятую колонку. Я использую mysql_fetch_array и $ row [5], но отображает только четыре столбца данных, пятый - пустой. Я пробовал $ row ['Diff'] без везения. – Jordi

+0

Я подтверждаю ваш ответ правильно, но я не могу просмотреть пятый столбец в моей таблице. Я вставляю строки в var и print_r. Результат Diff пуст в каждой строке. Кто-нибудь знает почему? – Jordi

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