pues no amigo me da error de sintaxis yo le hice asi me saca el reporte pero me sigue restando todas las entradas con todas lsa salidas y el reporte si me pone todos los codigo existentes pero en el resultado todos tienen lo mismo:
Código SQL
[-]form4.tabla.SQL.Add( 'SELECT nombre, codigo, '+
'((SELECT SUM(cantidad) FROM entradas WHERE codigo>=:inicial and documento=:entradas and cantidad > 0)'+
' -(SELECT SUM(cantidad) FROM entradas WHERE codigo<=:final and documento=:salidas and cantidad > 0)'+
') AS cantidad FROM entradas GROUP BY codigo');
form4.tabla.ParamByName('inicial').ASstring:=inicial.text;
form4.tabla.ParamByName('final').ASstring:=final.Text;
form4.tabla.ParamByName('entradas').ASstring:=entradas.Text;
form4.tabla.ParamByName('salidas').ASstring:=salidas.Text;
form4.tabla.PREPARE;
form4.tabla.Active:=TRUE;
form13.informe.Preview;