ACCESO Unirse sin identificadores distintos

Tengo dos tablas que no tienen identificadores distintos para unirse. Sin embargo, Table1 tiene un campo (Milestone) que contiene una cadena de texto con un formato de 999ABCD. Table2 tiene un campo Asunto que también contiene esta información; sin embargo, se encuentra en ubicaciones aleatorias como parte de un título dentro del campo Asunto de los registros.

¿Hay alguna manera de unir las dos tablas (Table1.Milestone a Table2.Subject) según el valor de Table1.Milestone y buscar el texto coincidente dentro de Table2.Subject?

¡Gracias!

preguntado el 22 de mayo de 12 a las 21:05

2 Respuestas

No estoy seguro de si esto funcionará o no, pero podría ayudarlo a comenzar en la dirección correcta:

select * from Table1 T1
join Table2 T2
on T2.Subject LIKE '%' + T1.Milestone + '%'

No recomendaría hacer una combinación como esta, incluso si funciona.

contestado el 22 de mayo de 12 a las 22:05

No uso Access, pero he conseguido que esto funcione para usted en MS SQL. Si puede encontrar una función similar a CHARINDEX en Access, esto funcionará para usted:

Preparar:

DECLARE @table1 TABLE (milestone varchar(20))
DECLARE @table2 TABLE (subj varchar(1000), details varchar(1000))

INSERT INTO @table1 VALUES ('999ABCD')
INSERT INTO @table1 VALUES ('999XYZ')

INSERT INTO @table2 VALUES ('Subject is 999ABCD', 'I should join only to 999ABCX')
INSERT INTO @table2 VALUES ('Subject 999XYZ is me', 'I should join only to 999xyz')
INSERT INTO @table2 VALUES ('Subject zzzzz is me', 'Nobody gets me')

Consulta real:

SELECT *
from @table1 t1
JOIN @table2 t2 ON CHARINDEX(milestone, subj) > 0

Aquí está el resultado:

milestone   subj    details
999ABCD Subject is 999ABCD  I should join only to 999ABCX
999XYZ  Subject 999XYZ is me    I should join only to 999xyz

Espero que ayude!

David

contestado el 22 de mayo de 12 a las 22:05

¡No hace falta decir que no te aconsejo que te unas de esta manera! Solo quería ayudar a resolver su problema. - Dave Collins

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.