Hallo!
Also allein vom Aufwand her würde ich das Problem mittels StoredProcedure, also PL/
SQL lösen.
Mit einem einzelnen
SQL-Statement lässt sich das ganze sowieso nicht realisieren und damit ist der Aufwand auf der Java-Seite schon relativ groß.
Zumindest die Konsolidierung solltest Du in einer Stored Procedure realisieren.
Eine Möglichkeit, die Du dabei noch hast, ist die gewünschte Datenmenge auch gleich von der Stored Procedure aufbereiten zu lassen, Stichwort ist hier ein sogenannter RefCursor.
Gruß
Peter