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

consulta complicada SQL

Estas en el tema de consulta complicada SQL en el foro de SQL Server en Foros del Web. hola amigos ojala alguienm e pueda ayudar con una consulta que quiero hacer en sql y no he podido tengo dos tablas pondre ejemplos Cita: ...
  #1 (permalink)  
Antiguo 11/05/2013, 19:48
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
consulta complicada SQL

hola amigos ojala alguienm e pueda ayudar con una consulta que quiero hacer en sql y no he podido tengo dos tablas pondre ejemplos

Cita:
declare @persona table (idPersona int identity (1,1), nombre varchar (50))
insert into @persona (nombre) values ('juan')
insert into @persona (nombre) values ('pedro')
insert into @persona (nombre) values ('maria')

declare @direccion table (idPersona int, ubicacion varchar (30))
insert into @direccion (idPersona, ubicacion) values (1, 'mexico')
insert into @direccion (idPersona, ubicacion) values (1, 'puebla')
insert into @direccion (idPersona, ubicacion) values (2, 'peñasco')
y lo que quiero es sacar una consulta que me regrese a todas las personas incluso a las que no tienen direccion, pero si esa persona no tiene direccion
que en sus columnas me aparesca en la fila -- o algo

tengo la siguiente consulta


Cita:
select P.nombre, case D.idPersona
when in (select idPersona from @direccion) then D.ubicacion else '--') end direccion
from @persona as P inner join @direccion as D on P.idPersona = D.idPersona
pretendo que me arroje algo asi

Cita:
NOMBRE DIRECCION
juan mexico
juan mexico
pedro peñasco
maria ------

para mostrar en un reporte esa informacion y agruparla
y que en el reporte me aparesca agrupada
y cuando muestre informacion de persona sin direccion que nomas diga,
direccion vacia

espero alguien me pueda ayudar :(

muchas gracias de antemano
__________________
si siempre hay algo nuevo que aprender
  #2 (permalink)  
Antiguo 13/05/2013, 08:02
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: consulta complicada SQL

usa un left join :)
Código SQL:
Ver original
  1. DECLARE @persona TABLE (idPersona INT IDENTITY (1,1), nombre VARCHAR (50))
  2. INSERT INTO @persona (nombre) VALUES ('juan')
  3. INSERT INTO @persona (nombre) VALUES ('pedro')
  4. INSERT INTO @persona (nombre) VALUES ('maria')
  5.  
  6. DECLARE @direccion TABLE (idPersona INT, ubicacion VARCHAR (30))
  7. INSERT INTO @direccion (idPersona, ubicacion) VALUES (1, 'mexico')
  8. INSERT INTO @direccion (idPersona, ubicacion) VALUES (1, 'puebla')
  9. INSERT INTO @direccion (idPersona, ubicacion) VALUES (2, 'peñasco')
  10.  
  11. SELECT t1.idPersona,t1.nombre,
  12. CASE WHEN t2.idPersona IS NULL THEN '--' ELSE t2.ubicacion END AS ubicacion FROM @persona AS t1
  13. LEFT JOIN @direccion AS t2 ON (t1.idPersona=t2.idPersona)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 13/05/2013, 09:18
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: consulta complicada SQL

Libras
Muchas gracias por tu aportación tu ayuda me ha sido muy útil muchísimas gracias
tenia días con esa sentencia y no andaba tan lejos

gracias
__________________
si siempre hay algo nuevo que aprender
  #4 (permalink)  
Antiguo 13/05/2013, 15:06
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta complicada SQL

Invertiste DÍAS en la sentencia??????, no pues eso se llama desperdiciar al tiempo....
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 13/05/2013, 16:21
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: consulta complicada SQL

Cita:
Iniciado por iislas Ver Mensaje
Invertiste DÍAS en la sentencia??????, no pues eso se llama desperdiciar al tiempo....
jajajajajajaja
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 14/05/2013, 08:47
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: consulta complicada SQL

casi un dia :(
__________________
si siempre hay algo nuevo que aprender
  #7 (permalink)  
Antiguo 16/05/2013, 15:00
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta complicada SQL

UN DIA, solamente perdido, menos mal
__________________
MCTS Isaias Islas

Etiquetas: insert, join, select, sql, 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 03:29.