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

problema consulta SELECT

Estas en el tema de problema consulta SELECT en el foro de SQL Server en Foros del Web. tengo la siguiente consulta select * from SRRUTA1 A, CCTARE1 b WHERE A.CR2=B.NT2 and A.CR3 = B.NT3 AND A.CR5=B.NT5 and CR2 LIKE 'ALVAREZ%' hasta ahi ...
  #1 (permalink)  
Antiguo 25/08/2008, 10:36
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
problema consulta SELECT

tengo la siguiente consulta

select * from SRRUTA1 A, CCTARE1 b WHERE A.CR2=B.NT2 and A.CR3 = B.NT3 AND A.CR5=B.NT5 and CR2 LIKE 'ALVAREZ%'

hasta ahi todo bien :p


ahora mi problema

que tengo 3 registros de esa consulta entonces mi problema es que necesito sacar los registros de las 2 tablas que tengan ese mismo nombre ALVAREZ aunque no cumplan la condicion A.CR2=B.NT2 and A.CR3 = B.NT3 AND A.CR5=B.NT5 osea que me muestre los registros faltantes que no cumplan esa condicion :p


si alguien me pudiese ayudar desde ya muchas gracias :D!
  #2 (permalink)  
Antiguo 25/08/2008, 11:18
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: problema consulta SELECT

que tal asi?

Código:
select * 
from SRRUTA1 A, CCTARE1 b 
WHERE CR2 LIKE 'ALVAREZ%'
      And (A.CR2 = B.NT2 or B.NT2 is null) 
      And (A.CR3 = B.NT3 or B.NT3 is null)
      And (A.CR5=B.NT5  or B.NT5 is null)
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 25/08/2008, 11:56
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: problema consulta SELECT

uuuff me mostro 7530 registros xD!

se me repite cada registro como 10 veces x)!
  #4 (permalink)  
Antiguo 25/08/2008, 12:03
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: problema consulta SELECT

ES COMO juntar la primera consulta con estas 2
select * from srruta1 where cr2 like 'ALVAREZ%'
select * from CCTARE1 where NT2 like 'ALVAREZ%'
en una sola consulta :D!
  #5 (permalink)  
Antiguo 25/08/2008, 12:51
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: problema consulta SELECT

si pones un ejemplo de la estructura, los datos y el resultado esperado, seria mucho mejor...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 25/08/2008, 13:14
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: problema consulta SELECT

okales :D!

TABLA SRRUTA

CR1 = CODIGO varchar(100)
CR2 = NOMBRE CALLE varchar(100)
CR3 = ALTURA varchar(100)
CR4 = POBLACION varchar(100)
CR5 = COMUNA varchar(100)

TABLA CCATARE

NT1= CODIGO varchar(100)
NT2 = NOMBRE CALLE varchar(100)
NT3 = ALTURA varchar(100)
NT4 = POBLACION varchar(100)
NT5 = COMUNA varchar(100)

con esta consulta

Código:
select * from SRRUTA1 A, CCTARE1 b WHERE A.CR2=B.NT2 and A.CR3 = B.NT3 AND A.CR5=B.NT5 and CR2 LIKE 'ALVAREZ%'
me devuelve los registros que son iguales en las 2 tablas eso ok

entonce con estas 2 otras consultas

select * from srruta1 where cr2 like 'ALVAREZ%'
select * from CCTARE1 where NT2 like 'ALVAREZ%'

me obtiene todos los datos

entonces lo que quiero que de la consulta select * from SRRUTA1 A, CCTARE1 b WHERE A.CR2=B.NT2 and A.CR3 = B.NT3 AND A.CR5=B.NT5 and CR2 LIKE 'ALVAREZ%' me devuelva los que son iguales y ademas los que no son iguales, pero con la condicion CR2 LIKE 'ALVAREZ%'

se entiende :D?
  #7 (permalink)  
Antiguo 26/08/2008, 07:56
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: problema consulta SELECT

hola ...en principio te aconsejo que cuand realices consultas con ams de una tabla lo hagas de manera con inner joins ,lefst join o right joins dependiendo de que te convenga ya que la abse lo maneja de una manera mas eficiente y no como haces de igualar todo en la parte del where.

a ver si esto te sirve.

select * from SRRUTA A left join CCATARE B on A.CR2=B.NT2 and A.CR3 = B.NT3 AND A.CR5=B.NT5
where CR2 LIKE 'ALVAREZ%'


nose si te servira pero lo que hace esta consulta es tomar la tabla SRRUTA completa teniendo en cuenta que el campo CR2 comience con ALVAREZ y siga con lo que sea ; tomar cada registro de esta tabla filtrada y completar con los datos de la talba CCTARE si encuetra un registro que concida con los datos en la tabla CCTARE por los campos que pusiste en la parte del on y en caso que no encuentre un macheo completa los datos con null.
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 05:31.