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

SubConsultas

Estas en el tema de SubConsultas en el foro de SQL Server en Foros del Web. Buenos días Tengo una duda con una subconsulta en sql, sé que cuando se hace una subconsulta solo debe devolver un valor para que no ...
  #1 (permalink)  
Antiguo 07/01/2009, 08:23
Avatar de StephenQ  
Fecha de Ingreso: marzo-2007
Mensajes: 114
Antigüedad: 17 años, 9 meses
Puntos: 2
Pregunta SubConsultas

Buenos días

Tengo una duda con una subconsulta en sql, sé que cuando se hace una subconsulta solo debe devolver un valor para que no sea errónea la consulta pero en el caso que deba de trabajar con varios valores como se puede hacer, por ejemplo:

Select Codigo, Nombre From tblCliente
Where Codigo = ( Select Codigo From tblVenta Where strDescripcionVenta like('Margar%'))

Cuando se hace la subconsulta debe de traer varios valores, lo que quiero es que cada uno de esos valores se compare con los de la principal para que me muestre todas las descripciones de ventas de ese cliente... Esto es posible? y como lo puedo hacer...


Muchas gracias.
__________________
StephenQ
  #2 (permalink)  
Antiguo 07/01/2009, 08:54
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: SubConsultas

Utilizando un IN en lugar de =

Código sql:
Ver original
  1. SELECT Codigo, Nombre
  2. FROM tblCliente
  3. WHERE Codigo IN ( SELECT Codigo FROM tblVenta WHERE strDescripcionVenta LIKE('Margar%'))

Como comentario: las subconsultas yo las utilizo con tablas pequenas.. o cuando no me queda otra alternativa.

Normalmente utilizo joins, para aprovechar los indices de cada tabla...

tu consulta por ejemplo podria quedar como:

Código sql:
Ver original
  1. SELECT c.Codigo
  2.         ,c.Nombre
  3. FROM tblCliente c
  4. INNER JOIN
  5.         tblVenta v
  6. ON    c.Codigo = v.Codigo
  7. WHERE strDescripcionVenta LIKE 'Margar%'

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 07/01/2009, 09:52
Avatar de StephenQ  
Fecha de Ingreso: marzo-2007
Mensajes: 114
Antigüedad: 17 años, 9 meses
Puntos: 2
Respuesta: SubConsultas

Muchas Gracias Andres95!!!

Ya funcionó a la perfección!!!
__________________
StephenQ
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 00:20.