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

Problema con ROLLUP

Estas en el tema de Problema con ROLLUP en el foro de Mysql en Foros del Web. Hola estoy recien empezando con php y mysql y me surgio una duda luego de estar un buen rato buscando por todos lados y no ...
  #1 (permalink)  
Antiguo 12/02/2011, 20:27
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta Problema con ROLLUP

Hola estoy recien empezando con php y mysql y me surgio una duda luego de estar un buen rato buscando por todos lados y no encontrar me decidi por consultar. No se si esta bien colocado el titulo si esta mal por favor avisen.

Tengo una tabla llamada animales tiene campos como id pelo sexo categoria, tambien tengo una tabla categoria donde tengo los datos de cuanto consume un animal de esa categoria por ejemplo si es chico consume 1 si es mediano 3 y si es grande 5
mi duda es hago una consulta para sacar la cantidad q hay de cada categoria y , esta cantidad la multiplico por el consumo y quiero q abajo del todo en la ulitma fila me de los totales de cada columna.
Probe ponerle Sum() pero no me funcione me da error agradesco la ayuda muchas graciaas de antemano
El codigo es el siguiente
Cod_Cat_Corto es la categoria UG el consumo
Código MySQL:
Ver original
  1. SELECT Cod_Cat_Corto, ug, count(Cod_Cat_Corto) , count(Cod_Cat_Corto)*UG
  2. FROM `animales`
  3. INNER JOIN categoria
  4. ON animales.cod_cat = categoria.cod_cat
  5. GROUP BY Cod_Cat_Corto WITH ROLLUP

Última edición por nicogx2004; 12/02/2011 a las 21:13
  #2 (permalink)  
Antiguo 14/02/2011, 03:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con ROLLUP


12.10.2. Modificadores de GROUP BY


Por lo que se puede leer en el link del manual creo que estas intentando ir mas lejos de lo que se supone que puede hacer ROLLUP, el cual te da subtotales y total general pero de la sumas o counts (funciones de agregado definidas por sql) no que cualquier operación.... creo.


Podrías hacer esto

Código MySQL:
Ver original
  1. SELECT Cod_Cat_Corto, ug, count(*) as numero , count(*)*UG as consumo
  2.          FROM `animales`
  3.               INNER JOIN categoria
  4.               ON animales.cod_cat = categoria.cod_cat
  5.           GROUP BY Cod_Cat_Corto
  6. SELECT 'Total' as Total,null as UG, sum(SBC.num) as numero, sum(SBC.con) as consumo
  7.      FROM (SELECT Cod_Cat_Corto, ug, count(*) as num , count(*)*UG as con
  8.                     FROM `animales`
  9.                        INNER JOIN categoria
  10.                        ON animales.cod_cat = categoria.cod_cat
  11.                     GROUP BY Cod_Cat_Corto) as SBC

El uso de las dos subconsultas es para mantener la ponderación...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 14/02/2011 a las 03:53

Etiquetas: rollup
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 06:09.