Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Campo concatenado (https://www.clubdelphi.com/foros/showthread.php?t=77035)

jafera 15-12-2011 17:59:40

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

ElDioni 15-12-2011 19:07:29

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.

Casimiro Notevi 15-12-2011 19:54:17

Cita:

Empezado por jafera (Mensaje 421242)
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.

jafera 16-12-2011 10:02:45

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


La franja horaria es GMT +2. Ahora son las 21:16:30.

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