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

subconsultas con case y exists

Estas en el tema de subconsultas con case y exists en el foro de SQL Server en Foros del Web. hola amigos tengo el siguiente query declare @codigo as varchar(10) declare @inicio as int declare @final as int set @codigo='ofi003' set @inicio=7 set @final=10 SELECT ...
  #1 (permalink)  
Antiguo 25/05/2010, 09:24
 
Fecha de Ingreso: junio-2009
Ubicación: chorrillos lima
Mensajes: 28
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta subconsultas con case y exists

hola amigos tengo el siguiente query
declare @codigo as varchar(10)
declare @inicio as int
declare @final as int
set @codigo='ofi003'
set @inicio=7
set @final=10

SELECT c.tip_conc,(CASE WHEN tip_conc='OFICINA' THEN
(SELECT a.tip_conc,b.nom_ofic FROM A10_ALDISTRIBUCIONCATS as a,
A10_OFICINAS as b where a.cod_ofic=b.cod_ofic and a.ca1_cahi>=@inicio and ca1_cahi<=@final
group by a.cod_ofic,a.tip_conc,b.nom_ofic) ELSE
(SELECT a.tip_conc,b.mat_corr+' '+b.nom_corr as nombre,b.desc_corr as razon from A10_ALDISTRIBUCIONCATS AS a,
A10_VECORREDOR AS b WHERE a.cod_ofic=b.cod_corr and a.ca1_cahi>=@inicio and ca1_cahi<=@final
group by a.cod_ofic,a.tip_conc,b.mat_corr,b.nom_corr,b.desc _corr)
END) FROM A10_ALDISTRIBUCIONCATS as c WHERE c.cod_ofic=@codigo and c.ca1_cahi=@inicio and c.ca1_cahi=@final

al ejecutar las subconsultas por separado arroja datos
pero al ejecutar todo junto me sale el siguiente error

Sólo se puede especificar una expresión en la lista de selección cuando la subconsulta no se especifica con EXISTS
  #2 (permalink)  
Antiguo 25/05/2010, 16:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: subconsultas con case y exists

Creo que por principio de reglas, deberías utilizar JOIN para unir tus tablas y tal vez, no lo se, desarrollar una función de usuario que le pases como parametro tip_conc.
  #3 (permalink)  
Antiguo 26/05/2010, 09:18
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: subconsultas con case y exists

Te recomiendo que uses el método "divide y vencerás", de forma que puedas construir vistas más pequeñas que al unirse ( mediante JOIN o UNION )te den la solución completa al problema.

Estas consultas tan complejas son muy difíciles de construir y mucho más de mantener.
Saludos
__________________
Mi blog de temas más o menos técnicos

Y aquí el Jamón jamon de Jabugo

Etiquetas: case
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:55.