Hola hecospina.
Para quitar los espacios y evitar el uso de
TRIM en la consulta podes hacer:
Código SQL
[-]
UPDATE TABLA
SET NOMBRE_CLIENTE = TRIM(NOMBRE_CLIENTE)
y luego modificar el programa para que realize TRIM antes de cada guardado.
Pero... con eso no se soluciona la cosa.
TRIM eliminará los espacios a la derecha e izquierda, pero el usuario podría por ejemplo, poner dos espacios entre el nombre y apellido (o equivocarse una letra al escribir). Y en esos casos
GROUP BY tampoco agrupará dichos valores por ser distintos.
Lo ideal sería que reemplazaras la columna
NOMBRE_CLIENTE por el identificador único de cliente correspondiente a la tabla clientes, de ese modo no habría equívoco posible:
Código SQL
[-]
CREATE TABLE TABLA (
...
CLIENTE_ID INTEGER,
...
);
Los valores de las columnas se verían parecido a esto:
Código:
FACTURA VALOR CLIENTE_ID
1345 60 1 (JUAN PEREZ)
1345 20 1
1345 20 1
1346 80 2 (OTRO CLIENTE)
Y la consulta equivalente sería:
Código SQL
[-]
SELECT T1.FACTURA, T2.NOMBRE_CLIENTE, SUM(T1.VALOR) AS VALOR
FROM TABLA T1
INNER JOIN CLIENTES T2 ON T1.CLIENTE_ID = T2.ID
GROUP BY T1.FACTURA, T2.NOMBRE_CLIENTE
Ahora poco importa si en la tabla de clientes a
JUAN PEREZ lo ingresaron con espacios, o como
JUAN PERES, etc., ya que siempre se tratará del mismo contenido y por lo tanto se agrupará.
Ha... por cierto, no olvides de poner las etiquetas [sql] ... [/sql] a tu código SQL (ya las agregué en tu mensaje)
Saludos