Ver Mensaje Individual
  #2  
Antiguo 30-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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,  /* ID (cliente) */
    ...
);
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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita