Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/07/2009, 07:44
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 16 años, 1 mes
Puntos: 360
Respuesta: Uso de case ... then ...

Como recomendación, no anides las tablas en el where. Haz uso de las sentencias join para unir las tablas. De esta forma, el requerimiento que tienes podría ser solucionado con el uso de left join o inner join.

Código sql:
Ver original
  1. SELECT m.municipio,
  2. (CASE pm.cod_prod WHEN 1 THEN cantidad_prod_mpio ELSE 0 END) AS Aceite,
  3. (CASE pm.cod_prod WHEN 2 THEN cantidad_prod_mpio ELSE 0 END) AS Arroz,
  4. (CASE pm.cod_prod WHEN 3 THEN cantidad_prod_mpio ELSE 0 END) AS Az_crudo,
  5. (CASE pm.cod_prod WHEN 4 THEN cantidad_prod_mpio ELSE 0 END) AS Gallina,
  6. (CASE pm.cod_prod WHEN 5 THEN cantidad_prod_mpio ELSE 0 END) AS Granos,
  7. (CASE pm.cod_prod WHEN 6 THEN cantidad_prod_mpio ELSE 0 END) AS H_trigo,
  8. (CASE pm.cod_prod WHEN 7 THEN cantidad_prod_mpio ELSE 0 END) AS Huevos,
  9. (CASE pm.cod_prod WHEN 8 THEN cantidad_prod_mpio ELSE 0 END) AS P_carn,
  10. (CASE pm.cod_prod WHEN 9 THEN cantidad_prod_mpio ELSE 0 END) AS Pollo,
  11. (CASE pm.cod_prod WHEN 10 THEN cantidad_prod_mpio ELSE 0 END) AS Salch,
  12. (CASE pm.cod_prod WHEN 11 THEN cantidad_prod_mpio ELSE 0 END) AS Visceras
  13. FROM productos_municipio pm
  14. INNER JOIN municipios m
  15. ON pm.cod_municipio=m.cod_municipio
  16. INNER JOIN productos p
  17. ON pm.cod_prod=p.cod_prod
  18. GROUP BY pm.cod_municipio
Esta consulta solo te mostrará los que existan en las tablas relacionadas.

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming