ayuda con problema al usar IN causa desagrupacion de los resultados

Iniciado por trachtenberg, 26 Noviembre 2012, 02:28 AM

0 Miembros y 1 Visitante están viendo este tema.

trachtenberg

saludos, estoy creando una tabla por meses  y con  total  donde al quere saber su existencia de tantos codigos , lo he realizado
codigo1 IN(..)AND IN codigo2 IN (... ) ....
me resulta bien cuando solo uso uno digamos codigo1 ... si uso mas IN para los demas codigos ..  el resultado no es el esperado se desagrupa .. me ignora el where desc_red='mired'

solo deberian ser 10 registros y sale muchos .. estoy intentado ya de varias formas, se me estan termnado las ideas xD 

gracias, aki mi consulta:>
Código (sql) [Seleccionar]
SELECT IFNULL(establec.desc_estab, 'TOTAL') AS 'Establecimiento',
COUNT(CASE MONTHNAME(fecha) WHEN 'January' THEN 1 ELSE null END) AS Enero,
COUNT(CASE MONTHNAME(fecha) WHEN 'February' THEN 1 ELSE null END) AS Febrero,
COUNT(CASE MONTHNAME(fecha) WHEN 'March' THEN 1 ELSE null END) AS Marzo,
COUNT(CASE MONTHNAME(fecha) WHEN 'April' THEN 1 ELSE null END) AS Abril,
COUNT(CASE MONTHNAME(fecha) WHEN 'May' THEN 1 ELSE null END) AS Mayo,
COUNT(CASE MONTHNAME(fecha) WHEN 'June' THEN 1 ELSE null END) AS Junio,
COUNT(CASE MONTHNAME(fecha) WHEN 'July' THEN 1 ELSE null END) AS Julio,
COUNT(CASE MONTHNAME(fecha) WHEN 'August' THEN 1 ELSE null END) AS Agosto,
COUNT(CASE MONTHNAME(fecha) WHEN 'September' THEN 1 ELSE null END) AS Setiembre,
COUNT(CASE MONTHNAME(fecha) WHEN 'October' THEN 1 ELSE null END) AS Octubre,
COUNT(CASE MONTHNAME(fecha) WHEN 'November' THEN 1 ELSE null END) AS Noviembre,
COUNT(CASE MONTHNAME(fecha) WHEN 'Dicember' THEN 1 ELSE null END) AS Diciembre,
count(fecha) AS Total,establec.desc_red FROM his_2012,establec
where establec.desc_red="mired" and codigo1 IN('A37','J180','J050','J051','J90','J851','J86','J10','J11','J939','J188','J1891','J1892') AND diagnost1='D'
OR codigo2 IN('A37','J180','J050','J051','J90','J851','J86','J10','J11','J939','J188','J1891','J1892') AND diagnost2='D'
OR codigo3 IN('A37','J180','J050','J051','J90','J851','J86','J10','J11','J939','J188','J1891','J1892') AND diagnost3='D'
OR codigo4 IN('A37','J180','J050','J051','J90','J851','J86','J10','J11','J939','J188','J1891','J1892') AND diagnost4='D'
OR codigo5 IN('A37','J180','J050','J051','J90','J851','J86','J10','J11','J939','J188','J1891','J1892') AND diagnost5='D'
OR codigo6 IN('A37','J180','J050','J051','J90','J851','J86','J10','J11','J939','J188','J1891','J1892') AND diagnost6='D'
AND edad >=1 AND edad<=29
GROUP BY establec.desc_estab WITH ROLLUP
-=trachtenberg=-

trachtenberg

problema resuelto ..
solo era cuestión de paréntesis  por el valor OR todo el registro me devuelva un solo valor asi :
establec.desc_red="mired" AND ( ( codigo1 IN('A37','J180','J05') AND diagnost1='D' ) OR ( codigo2 IN('A37','J180','J050') AND diagnost2='D' ) OR ( Codigo3...) ) AND edad >=1 AND edad<=29
ahi la idea .
-=trachtenberg=-