Use MAX to get the highest shogen_no for each Serial_no:
select serial_no, max(shogen_no) max_shogen_no
from shogen_value
where ...
group by serial_no;
Then join that to main query, e.g
select ...
from shogen_value
where (serial_no, shogen_no) in
(
select serial_no, max(shogen_no) max_shogen_no
from shogen_value
where ...
group by serial_no
);