У меня возникли проблемы при написании запроса, который выполняет внутреннее соединение.
В моей таблице базы данных есть столбцы Дата, Высокая температура, Низкая температура. Я хочу рассчитать такие вещи, как самая высокая температура по месяцам года, извлекая дату, когда они произошли одновременно. Это прекрасно работает, используя запрос ниже:
SELECT ds.Date,
MONTH(ds.Date) AS Month,
ds.HighTemperature
FROM WeatherData.DailyStats ds
INNER JOIN (SELECT MONTH(Date) AS Month,
Date,
MAX(HighTemperature) AS HighTemperature
FROM WeatherData.DailyStats GROUP BY Month) ds2
ON MONTH(ds.Date) = MONTH(ds2.Date) AND ds.HighTemperature = ds2.HighTemperature
ORDER BY MONTH(ds.Date), ds.DATE ASC
Это дает мне 12 строк, по одному на каждый месяц года. Каждая строка содержит номер месяца, самую высокую температуру, зарегистрированную в этом месяце, и дату, когда она произошла.
Теперь, когда у меня нет успеха, я пытаюсь сделать что-то немного более хитрое - вместо того, чтобы выполнять запрос непосредственно по HighTemperam, я хочу найти самые высокие дневные диапазоны температуры для каждого месяца, то есть получить один и тот же вид результаты для (HighTemperature - LowTemperature) AS TemperatureRange
.
Как мне изменить запрос, чтобы сделать это?