आपको अधिकतम तिथि चुनने में समस्या थी, क्योंकि माह पहले दिखाई दे रहा था। एक अलग तरीका है max_date मान को ऊपर लाना (एक उप-क्वेरी से)। इसके बाद आप तारीख के विभिन्न हिस्सों से तुलना कर सकते हैं . कोड इस प्रकार है:
select site_name, site_date, name
from
(
select site_name, st.date as site_date, name, s.id, (select max(sto.date) from site_topology sto) as max_date
from site s
inner join site_topology st on s.id =st.id_site
inner join topology t on st.id_topology = t.id
) as v
where YEAR(site_date) = YEAR(max_date) AND MONTH(site_date) = MONTH(max_date) AND DAY(site_date) = DAY(max_date)
group by name
order by site_name