Dependiendo de la BBDD que utilices, se puede hacer lo siguiente:
SQL Server:
Código:
Select Codigo,
SUM(case Monto when >=0 then Monto else 0 ) as Debe,
SUM(case Monto when < 0 then Monto else 0 ) as Haber
FROM "TABLA"
Group by Codigo
Access:
Código:
Select Codigo,
SUM(iif (Monto >=0; Monto;0 )) as Debe,
SUM(iif( Monto < 0; Monto; 0 )) as Haber
FROM "TABLA"
Group by Codigo
Y para otros sistemas de BBDD será parecido; te remito a la ayuda del que utilices.
De todas maneras no he comprobado el código, por si lo utilizas.
Espero que te ayude.
Un saludo