Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > SQL
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 15/12/2011
jafera's Avatar
jafera jafera is offline
Miembro
 
Join Date: May 2007
Location: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Campo concatenado

Buenas tardes a todos.

Tengo una duda sobre como usar el valor de un campo concatenado.

Semanalmente me pasan un fichero txt con los registros de la gente que posee licencia de ciclismo para confeccionar las tablas mater, el formato de este archivo es:

ID, Apellido1, Apellido2, Nombre, Licencia, etc.

Yo importo este fichero a una tabla Firebird sin ningun problema, pero a mi me interesa obtener el formato Apellido1 Apellido2, Nombre, con lo cual realizo una sentencia sql así:

Código SQL [-]
 
SELECT ID, APELLIDO1||' '||APELLIDO2||', '||NOMBRE AS NOMBRE1, LICENCIA

El problema que tengo es que el valor obtenido NOMBRE1 no me vale para hacer ordenaciones y busquedas secuenciales; mi pregunta es:

Se puede hacer algo con estos datos para poder usar este campo en diferentes consultas?

La tabla mueve aproximadamente 55.000 a final de temporada menos al inicio ya que se van incrementando semanalmente.

Gracias por adelantado

Josep
Reply With Quote
  #2  
Old 15/12/2011
ElDioni's Avatar
[ElDioni] ElDioni is offline
Miembro Premium
 
Join Date: Jul 2005
Location: Murcia (España)
Posts: 935
Poder: 22
ElDioni Va por buen camino
Hola,
a mi me pasa lo mismo y yo trabajo con tablas de access, tengo en una consulta mezclado el papel y el adhesivo de un material y lo llamo mezcla, pero no puedo hacer consultas ni ordenación por este campo, lo que hice para solucionar el asunto es controlar cuando se está buscando u ordenando por este campo y entonces utilizar los campos que forman el campo mezcla individualmente.
Cuando alguien busca por mezcla en la consulta de SQL pongo:

Código SQL [-]
SELECT * FROM articulos WHERE (papel LIKE 'texto' OR adhesivo LIKE 'texto')

y en la ordenacion:

Código SQL [-]
ORDER BY papel,adhesivo

No se si te ayuda pero por lo menos mal de muchos...

Saludos.
Reply With Quote
  #3  
Old 15/12/2011
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,681
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by jafera View Post
Se puede hacer algo con estos datos para poder usar este campo en diferentes consultas?
Puedes crearte un campo que sea la suma de apellido1 y apellido2, lo llamas, por ejemplo, apellidos, y listo.
Reply With Quote
  #4  
Old 16/12/2011
jafera's Avatar
jafera jafera is offline
Miembro
 
Join Date: May 2007
Location: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Gracias por las respuestas.

El problema basicamente radica en que no solo ordeno por estos campos, en un combo box puedo seleccionar por donde quiero ordenar, Nombre, Licencia, DNI, etc.

Despues viene el problema cuando al cambiar en onselect del combo box me lanza el error de que no encuentra el campo por el que quiero ordenar

Código Delphi [-]
 
procedure TF_MasterDetall.ComboBox1Select(Sender: TObject);
begin
        Edit1.Text :='';
        Master.Close;
        Master.SQL[2] := 'ORDER BY '+ ComboBox1.Text;
        Master.Open;
        Master.FieldByName(ComboBox1.Text).Index := 0;
        JvDBUltimGrid1.SetFocus;
end;

Código Delphi [-]
 
procedure TF_MasterDetall.Edit1Change(Sender: TObject);
var Camp: String;
begin
        Camp:=Combobox1.Text;
        If Camp='NOM' then
        Camp:='COGNOM1';
        BuscarCorredor.Close;
        BuscarCorredor.SQL.Clear;
        BuscarCorredor.SQL.Add('select '+Camp+' from CU0001 where upper('+Camp+') like '+quotedstr(AnsiUpperCase(Edit1.Text))+' order by '+Camp+'');
        BuscarCorredor.Open;
        Try
                Master.Locate(Camp,BuscarCorredor.Fields[0].Value,[]);
        finally
                BuscarCorredor.Close;
        end;
end;

El tema del campo calculado con apellido1+ apellido2+nombre tambien lo he probado, no acaba de funcionar correctamente la búsqueda.

Saludos
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Copiar campo ftDATASET a otro campo delphijm Conexión con bases de datos 2 14/03/2011 12:55
Asignar el valor de un campo aggregate a un campo de la base TrUnkS Conexión con bases de datos 1 23/02/2010 05:17
Pasar un campo calculado a un campo del mismo DbGrid maravert Conexión con bases de datos 3 12/05/2006 00:31
UPDATE de un campo dependiendo del valor de un campo de otra tabla Javi2 SQL 5 18/04/2005 16:35
Relacion campo numérico vs campo string JorgeBec Varios 1 11/04/2005 18:26


All times are GMT +2. The time now is 02:16.


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