Mach mal einen "create table test as (select ...)" um den Typ des Zielfeldes festzustellen.
Wer weiß schon wie SQL genau Ergebnisfelder definiert um den maximal möglichen Ergebniswert aufzunehmen selbst wenn das tatsächliche Ergebnis durchaus kleiner sein kann.

-2 bedeutet nur "Wert zu groß für Zielfeld".