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

Encontrar campos que coinciden en dos tablas

Estas en el tema de Encontrar campos que coinciden en dos tablas en el foro de SQL Server en Foros del Web. Hola que tal, resulta que necesito hacer una consulta en dos tablas de Empresas, En la primera tabla estan los nombre completos de las empresas, ...
  #1 (permalink)  
Antiguo 16/10/2011, 11:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 11
Antigüedad: 15 años
Puntos: 0
Pregunta Encontrar campos que coinciden en dos tablas

Hola que tal, resulta que necesito hacer una consulta en dos tablas de Empresas, En la primera tabla estan los nombre completos de las empresas, y en la segunda tabla tambien estan los nombres pero estan incompletos. La idea es encontrar y hacer una consulta con los campos que son similares, no se si me explico. Pongo imagenes como referencia y parte del codigo SQL que estoy usando.

Tabla en Base de datos A


Tabla en Base de datos B


El resultado en la consulta que busco es este:



La manera mas proxima que he econtrado de hacerlo es asi:

Código:
SELECT DISTINCT RTRIM(a.NombreEmpresaBD_A) as NombreReal, b.EmpresaDB_B as NombreIncompleto
FROM EmpresaDB_A a, EmpresaDB_B b 
WHERE a.NombreEmpresaBD_A Like 'VoIP%' AND b.EmpresaDB_B Like 'VoIP%'
El problema con el codigo anterior es que solo devuelve el registro que se especifica en el WHERE y si en el Like pongo esto: '%' Me devuelve el Producto cartesiano de ambas tablas. Les agradeceria mucho si me ayudaran con alguna propuesta de solución.
  #2 (permalink)  
Antiguo 17/10/2011, 15:17
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: Encontrar campos que coinciden en dos tablas

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. nombre VARCHAR(200)
  4. )
  5.  
  6. CREATE TABLE #temp1
  7. (
  8. nombreb VARCHAR(200)
  9. )
  10.  
  11. INSERT INTO #temp VALUES('computex S.A')
  12. INSERT INTO #temp VALUES('citycomp')
  13. INSERT INTO #temp VALUES('netland technology')
  14. INSERT INTO #temp VALUES('voip service mexico')
  15. INSERT INTO #temp VALUES('sinergy')
  16. INSERT INTO #temp VALUES('netitlan corp')
  17.  
  18. INSERT INTO #temp1 VALUES('computex')
  19. INSERT INTO #temp1 VALUES('citycomp')
  20. INSERT INTO #temp1 VALUES('netland')
  21. INSERT INTO #temp1 VALUES('voip service')
  22. INSERT INTO #temp1 VALUES('sinergy')
  23. INSERT INTO #temp1 VALUES('netitlan')
  24.  
  25. SELECT
  26. CASE
  27. WHEN
  28. charindex(nombreb,nombre,1)=1 THEN 'tabla 1' + nombre + '-' + 'tabla 2' + nombreb END AS campo
  29. FROM #temp AS t1, #temp1 AS t2
  30. WHERE charindex(nombreb,nombre,1)=1
  31. GROUP BY nombre,nombreb

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

Etiquetas: bd, campos, coincidir, distintos, tablas
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 16:27.