Mysql соединение на основе макс (отметка времени)

У меня есть веб-приложение, которое позволяет клиенту определять дневную ставку за свои услуги. Для любого данного дня клиент может ввести две ставки: почасовую (rateTypeId = 1) и dailyRate (rateTypeId = 2). Эти ставки часто назначаются заранее, и они часто меняются. Мне нужно отслеживать все назначения, но только тянуть последнюю назначенную ставку.

У меня есть две таблицы. Первая таблица просто определяет мою структуру ставок и выглядит следующим образом (упрощенно):

Таблица: RateDefinitions

RATECODE ----- RATE
31 ---------------- 5.00
32 ---------------- 6.00
33 ---------------- 7.00

Моя вторая таблица отслеживает ставки, назначенные на указанные даты. Для данной даты может быть назначено несколько ставок, но мы будем использовать только последнюю ставку, основанную наentrytimestamp.

Таблица: Цены

ID --- RATETYPEID --- RATECODE ------ DATE -------- ENTRYTIMESTAMP
1 ---------- 1 --------------- 31 ---------- 20091010 ---------- 1100000000
2 ---------- 2 --------------- 33 ---------- 20091010 ---------- 1100000000
3 ---------- 1 --------------- 32 ---------- 20091010 ---------- 1200000000

Сейчас я'Я испытываю затруднения при составлении запроса, который будет извлекать все последние присвоения ставок за указанный период времени. Я '

мы пробовали:

select r.id, r.rateTypeId, r.rateCode, max(r.entryTimestamp), rd.rate
from rates r
join rateDefinitions rd
on r.rateCode=rd.rateCode
where date=20091010
group by startDate, rateTypeId

Но это'не собираюсь этого делать. Я'Я думаю, что мне нужно объединить заявление, но не уверен. Мои результаты должны содержать две строки на дату, похожие на:

ID --- RATETYPEID --- RATECODE ---------- ENTRYTIMESTAMP ----- RATE
3 ----------- 1 --------------- 32 -------------------- 1200000000 ----------6.00
2 ----------- 2 --------------- 33 -------------------- 1100000000 ----------7.00

Спасибо за любые предложения.

Ответы на вопрос(2)

Ваш ответ на вопрос