Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Caracteres comodin con un registro

Estas en el tema de Caracteres comodin con un registro en el foro de SQL Server en Foros del Web. Hola a todos, espero que podais echarme una mano porque me estoy volviendo tarumba. Explico mi situación. Tengo 2 tablas, ambas con un numero de ...
  #1 (permalink)  
Antiguo 15/02/2012, 06:29
Avatar de acid_burd  
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 3 meses
Puntos: 0
Caracteres comodin con un registro

Hola a todos, espero que podais echarme una mano porque me estoy volviendo tarumba.

Explico mi situación.

Tengo 2 tablas, ambas con un numero de historia(NHistoria), pero es una de ellas el numero está correcto, por ejemplo 205, pero en la otra está el numero correcto(que no hay 2 iguales) más 2 dígitos, que al principio coincidía con el año de nacimiento pero ahora está en 99 por lo que en una tabla el NHistoria es el 205 y su correspondiente en la segunda tabla seria 99205 ó 98205...(no hay numeros repetidos, no hay un 99205 y un 98205, es uno u otro).
Bien, lo que necesito es pasar los numeros de la primera tabla(los que se supone esta más correctos) y ponerles su correspondiende de la segunda tabla para que en todos los lados aparezca el mismo número, 99205.

Pero no lo consigo.

Estoy intentando hacer la consulta normal para luego aplicarle un UPDATE pero no me muestra registros. La consulta que he construido seria esta:
Código:
select Atendidos.NHistoria, At_diagn.NhistoriaDiag From Atendidos INNER JOIN At_diagn on atendidos.NHistoria like ('__'+rtrim(At_diagn.NhistoriaDiag))
AH! y por cierto, ambos datos son tipo nchar(10).

Se os ocurre donde podría estar el fallo??


Un saludo y gracias
  #2 (permalink)  
Antiguo 15/02/2012, 08:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Caracteres comodin con un registro

Te sirve esto:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. dato VARCHAR(10)
  4. )
  5.  
  6. CREATE TABLE #temp2
  7. (
  8. dato VARCHAR(10)
  9. )
  10.  
  11. INSERT INTO #temp VALUES ('10')
  12. INSERT INTO #temp VALUES ('205')
  13.  
  14. INSERT INTO #temp2 VALUES ('9910')
  15. INSERT INTO #temp2 VALUES ('99205')
  16. INSERT INTO #temp2 VALUES ('99100')
  17.  
  18. SELECT t2.dato FROM #temp AS t1,#temp2 AS t2
  19. WHERE RIGHT(t2.dato,len(t1.dato))=t1.dato

Lo que hace este query es que te compara los datos de la tabla 1 (10,205) contra los de la tabla 2 tomando solo los caracteres necesarios de la derecha de tabla 2(en este ejemplo del numero 9910 nada mas tomaria 10) :)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: caracteres, comodin, registro, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:46.