| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
seth Cmdr

Registrado: 16 Nov 2003Mensajes: 129
|
Publicado: Lun 10 Mar, 2008 10:16 pm Asunto: Funciones de cadena en Interbase |
|
|
Buenas Tardes
Que funciones de cadena se pueden aplicar a Interbase en una consulta SQL.
Necesito saber como puedo realizar una consulta en SQL de tal forma que
TABLA 1
campo1
aa1010
aa1221
aa3275
campo2
10/04/2007
11/02/2008
10/03/2008
TABLA 2
campo1
1010
3275
1221
campo2
LIMA
BOGOTA
CARACAS
buscar todos los que sean aa1010 que esten en la tabla 2 como 1010
nose si es claro
saludos |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 11 Mar, 2008 8:39 am Asunto: |
|
|
Esta pregunta hubiera estado mejor en el foro de bases de datos, pero da igual. Para hace esa consulta necesitas una campo que esté en ambas tablas y que en ambas tenga el mismo valor ya que de otra forma no podrías filtrar los resultados. No obstante, lo que te haría falta sería algo así:
| Código: | SELECT A.Campo1, A.Campo2 FROM Tabla1 A, Tabla2 B WHERE A.Campo1 = 'aa1010' AND B.Campo1 = '1010' AND A.CampoN = B.CampoN |
Ese CampoN es el ha de ser común a ambos. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
seth Cmdr

Registrado: 16 Nov 2003Mensajes: 129
|
Publicado: Mar 11 Mar, 2008 3:56 pm Asunto: |
|
|
Buenos Días
Gracias Angel, pero el campo comun en las dos tablas es campo1 por tal razon es que necesito una funcion de cadena para extraer los 4 ultimos digitos al campo1 de la tabla 1 para poder realizar dicha comparacion
Saludos |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 11 Mar, 2008 5:31 pm Asunto: |
|
|
¡Ah! Pues es fácil, al menos con tablas Paradox o Firebird:
| Código: | SELECT A.Campo1, A.Campo2 FROM Tabla1 A, Tabla2 B WHERE SUBSTRING(A.Campo1 FROM 3 FOR 4) = B.Campo1 |
Esta es fija: coge cuatro caracteres a partir de la posición 3 y los compara con el valor del Campo1 en la Tabla2.
| Código: | SELECT A.CAmpo1, A.Campo2 FROM Tabla1 A, Tabla2 B WHERE SUBSTRING(A.Campo1 FROM " + FormatFloat("0", Tabla1->FieldByName("Campo1")->Size - 3) + " FOR 4 = B.Campo2 |
Este otro (no lo he probado, pero debería funcionar) coge los cuatro últimos caracteres del Campo1 de la Tabla1, independientemente de cuales sean. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|