Sobre consulta
Publicado por yessenia (4 intervenciones) el 25/11/2008 05:05:02
*Tengo la siguiente consulta en un procedimiento almacenado: */
if @preg='p1'
begin
set @dpt=1
while @dpt<15
begin
set @texto= (select distinct dpt_departamento from mti_ubi_dpt where dpt_codigo=@dpt)
SET @tipo1 = (select count(a.tipo) from tipos a
inner join mti_ubi_cir b on a.codigo=b.codigo
inner join mti_ubi_cir b on a.cir_codigo=b.cir_codigo
inner JOIN mti_ubi_mcp d on c.mcp_codigo=d.mcp_codigo
inner JOIN mti_ubi_dpt e on d.dpt_codigo=e.dpt_codigo
where e.dpt_codigo=@dpt and a.tipo =1)
SET @luz = (select count(a.tipo) from tipos a
inner join mti_ubi_cir b on a.cir_codigo=b.cir_codigo
inner JOIN mti_ubi_cmn c on b.cmn_codigo=c.cmn_codigo
inner JOIN mti_ubi_mcp d on c.mcp_codigo=d.mcp_codigo
inner JOIN mti_ubi_dpt e on d.dpt_codigo=e.dpt_codigo
where e.dpt_codigo=@dpt and a.tipo =1)
SET @sani = (select count(a.tipo) from tipos a
inner join mti_ubi_cir b on a.cir_codigo=b.cir_codigo
inner JOIN mti_ubi_cmn c on b.cmn_codigo=c.cmn_codigo
inner JOIN mti_ubi_mcp d on c.mcp_codigo=d.mcp_codigo
inner JOIN mti_ubi_dpt e on d.dpt_codigo=e.dpt_codigo
where e.dpt_codigo=@dpt and a.tipo =1)
set @porcent =(@tipo1*0.2+@tipo2*0.2+@tipo3*0.1)*100
SELECT @texto as Departamento, @tipo1 as tipo1,@tipo2 as tipo2,@tipo3 as tipo3,
@porcent as Porcentaje
set @dpt=@dpt+1
if @dpt=15
break
else
continue
end
end
else
/* Cuando lo ejecuto me genera el siguiente resultado: */
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto1 10 13 13 39.33
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto2 12 12 13 40.67
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto3 12 13 12 44.29
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto4 9 14 12 38.67
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto5 9 9 9 50.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto6 13 14 14 40.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto7 13 14 15 46.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto8 8 11 13 39.23
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto9 12 14 15 41.88
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto10 13 14 14 40.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto11 12 13 12 44.29
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto12 10 13 13 39.33
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto13 9 14 12 38.67
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto14 13 14 14 40.00
(1 filas afectadas)
/*Cuando en realidad necesito tener este resultado*/
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
--------------------- ------------------ ----------------- ------------------ ------------------------------
Depto1 10 13 13 39.33
Depto2 12 12 13 40.67
Depto3 12 13 12 44.29
Depto4 9 14 12 38.67
Depto5 9 9 9 50.00
Depto6 13 14 14 40.00
Depto7 13 14 15 46.00
Depto8 8 11 13 39.23
Depto9 12 14 15 41.88
Depto10 13 14 14 40.00
Depto11 12 13 12 44.29
Depto12 10 13 13 39.33
Depto13 9 14 12 38.67
Depto14 13 14 14 40.00
(14 filas afectadas)
/* Por favor ayudenme, necesito saber que es lo que estoy haciendo mal*/
if @preg='p1'
begin
set @dpt=1
while @dpt<15
begin
set @texto= (select distinct dpt_departamento from mti_ubi_dpt where dpt_codigo=@dpt)
SET @tipo1 = (select count(a.tipo) from tipos a
inner join mti_ubi_cir b on a.codigo=b.codigo
inner join mti_ubi_cir b on a.cir_codigo=b.cir_codigo
inner JOIN mti_ubi_mcp d on c.mcp_codigo=d.mcp_codigo
inner JOIN mti_ubi_dpt e on d.dpt_codigo=e.dpt_codigo
where e.dpt_codigo=@dpt and a.tipo =1)
SET @luz = (select count(a.tipo) from tipos a
inner join mti_ubi_cir b on a.cir_codigo=b.cir_codigo
inner JOIN mti_ubi_cmn c on b.cmn_codigo=c.cmn_codigo
inner JOIN mti_ubi_mcp d on c.mcp_codigo=d.mcp_codigo
inner JOIN mti_ubi_dpt e on d.dpt_codigo=e.dpt_codigo
where e.dpt_codigo=@dpt and a.tipo =1)
SET @sani = (select count(a.tipo) from tipos a
inner join mti_ubi_cir b on a.cir_codigo=b.cir_codigo
inner JOIN mti_ubi_cmn c on b.cmn_codigo=c.cmn_codigo
inner JOIN mti_ubi_mcp d on c.mcp_codigo=d.mcp_codigo
inner JOIN mti_ubi_dpt e on d.dpt_codigo=e.dpt_codigo
where e.dpt_codigo=@dpt and a.tipo =1)
set @porcent =(@tipo1*0.2+@tipo2*0.2+@tipo3*0.1)*100
SELECT @texto as Departamento, @tipo1 as tipo1,@tipo2 as tipo2,@tipo3 as tipo3,
@porcent as Porcentaje
set @dpt=@dpt+1
if @dpt=15
break
else
continue
end
end
else
/* Cuando lo ejecuto me genera el siguiente resultado: */
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto1 10 13 13 39.33
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto2 12 12 13 40.67
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto3 12 13 12 44.29
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto4 9 14 12 38.67
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto5 9 9 9 50.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto6 13 14 14 40.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto7 13 14 15 46.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto8 8 11 13 39.23
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto9 12 14 15 41.88
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto10 13 14 14 40.00
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto11 12 13 12 44.29
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto12 10 13 13 39.33
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto13 9 14 12 38.67
(1 filas afectadas)
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
-------------------- ------------------ ------------------- ---------------- ------------------------------
Depto14 13 14 14 40.00
(1 filas afectadas)
/*Cuando en realidad necesito tener este resultado*/
Departamento Tipo1 Tipo2 Tipo3 Porcentaje
--------------------- ------------------ ----------------- ------------------ ------------------------------
Depto1 10 13 13 39.33
Depto2 12 12 13 40.67
Depto3 12 13 12 44.29
Depto4 9 14 12 38.67
Depto5 9 9 9 50.00
Depto6 13 14 14 40.00
Depto7 13 14 15 46.00
Depto8 8 11 13 39.23
Depto9 12 14 15 41.88
Depto10 13 14 14 40.00
Depto11 12 13 12 44.29
Depto12 10 13 13 39.33
Depto13 9 14 12 38.67
Depto14 13 14 14 40.00
(14 filas afectadas)
/* Por favor ayudenme, necesito saber que es lo que estoy haciendo mal*/
Valora esta pregunta


0