Имам следната таблица A и таблица B, където A е едно към много с B; за всеки запис на A трябва да избера съответния максимален запис на B за всяка група за A. т.е. групирането се извършва въз основа на last_updated_time.
SELECT taba.ws_name, tabb.b2a, max(tabb.last_update_time)
FROM TabA taba, TabB tabb
where taba.name = 'xyz'
and taba.id = tabb.b2a
group by taba.ws_name, tabb.b2a
Това работи добре и добре.
Проблемът възниква, когато трябва да избера "състоянието" и на последната транзакция, това води до избор на дубликати, тъй като състоянието може да бъде или неуспешно, или успешно.
Моето изискване е да избера само максималния запис, независимо от състоянието му (въпреки че трябва да покажа и състоянието)
Така че, когато всяко „ws_name“ има множество записи за неуспех, както и за успех, така че MAX updated_time се избира и за двете групи (от „Неуспех“ & „Успех“).
По-долу е заявката, която изпробвах и нямам представа как да премахна дубликатите, избрани поради състоянието.
SELECT taba.ws_name, tabb.b2a, **tabb.status**, max(tabb.last_update_time)
FROM TabA taba, TabB tabb
where taba.name = 'xyz'
and taba.id = tabb.b2a
group by taba.ws_name, tabb.b2a, **tabb.status**