Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 30-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Modificar un campo Computed By Jose Miguel Mun Firebird e Interbase 2 15-01-2009 15:04:29
ClientDataSet y campo COMPUTED BY Jose Miguel Mun Firebird e Interbase 2 24-02-2007 15:29:48
Agrupar por campo ¥0n1 Impresión 5 18-11-2004 13:36:10
Agrupar campo daytime por dia mithos07 Firebird e Interbase 1 12-11-2003 15:34:03


La franja horaria es GMT +2. Ahora son las 04:36:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi