Código MySQL:
Ver original
El resultado es ok, pero no me suma la columna "leads", me retona 0. A alguien le ha pasado esto? alguna solucion?
Desde ya muchas gracias!!
| ||||
WITH ROLLUP no me suma una columna Hola gente del foro! estoy estrenando el hilo de base de datos . Les cuento, pues me tope con un problemita usando WITH ROLLUP. Les muestro la consulta:
Código MySQL:
Ver original El resultado es ok, pero no me suma la columna "leads", me retona 0. A alguien le ha pasado esto? alguna solucion? Desde ya muchas gracias!! |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Hola gnzsoloyo si por supuesto te copio el volcado
Código MySQL:
Ver original Lo de la tabla USUARIO efectivamente en ese ejemplo esta demas ;) puedes quitarlo (es que luego lo uso, en este caso no influye). Con
Código MySQL:
no alcanza para poner en 0 los valores NULL ? Ya no se que hacer para que me sume esa columna....Ver original Si sacas algo en limpio nos comentas! Muchas gracias Última edición por deniz; 18/06/2010 a las 13:12 |
| ||||
Respuesta: WITH ROLLUP no me suma una columna A mí me parece que lo que están mal planteados son los agrupamientos. Además, en la miestra sólo tienes un lead ingresado, por lo que es propenso a errores de interpretación. ¿Cuáles son los subtotales y totales que se quieren obtener? ¿Podrías ser algo así:
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Hola, he probado tu consulta, y ha ido muy bien, pero no me interesa calcular sub.totales, solo los totales, y es justamente lo que no me sale Que vuelta le podriamos dar ? Por otra parte, tienes razon tengo 1 solo lead ingresado y puede que me traiga problemas pero en realidad es un escenario posible.. Sigo probando tu idea, muchas gracias por tu atencion, si tienes alguna idea mas te agredezco |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Cita: Bien, un poco más claro, por favor: ¿Totales de qué y agrupados en base a qué criterios...?Hola, he probado tu consulta, y ha ido muy bien, pero no me interesa calcular sub.totales, solo los totales, y es justamente lo que no me sale Que vuelta le podriamos dar ? Es decir: - Totales por fecha (se eliminan los usuarios) - Totales por usuario (se eliminan las fechas) - Totales por usuario y fecha (sólo quedan los campos acumulables juto a la fecha y los usuarios) - Totales por usuario y subtotales por fecha (sólo quedan los campos acumulables junto a la fecha y los usuarios) - Subtotales por usuario y totales por fecha (sólo quedan los campos acumulables junto a la fecha y los usuarios) Porque eso es lo que debes definir primero. La sintaxis variará conforme sea lo que necesitas...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Disculpas por mi ambigüedad... Necesito totales por fechas, es decir, para cada fecha calcular la cantidad de leads y recomendaciones (ya esta hecho). Luego agregar una fila mas con los totales, que corresponden a los valores acumulados de las columnas numericas ( leads y recomendaciones ). Tengo algo mal hecho en la query? Gracias |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Que la has escrito innecesariamente complicada:
Código MySQL:
Estabas haciendo que la subconsulta, que ya devolvía lo que necesitabas, perdiera las ´líneas que hacían posible funcionar al ROLLUP. Ver original
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Lo que me dices no me sirve, tengo que cruzar datos entre las fechas y las fechasLead por eso hago un left join. La mejoro pero sigue sin calcularme el total para la columna Leads.
Código MySQL:
Ver original Gracias |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Explicame la lógica de tu consulta, porque yo la veo innecesaria... Estás primero sumando los leads de la tabla y luego, cruzando ese resultado con la misma tabla para combinarlo con la cuenta de recomendaciones que coinciden en la misma fecha. En esencia, es lo mismo que yo te propongo: Las funciones SUM() y COUNT() aplicadas sobre campos sólo suman y cuentan campos no nulos, por lo que el resultado debería ser ése. Al aplicarlo con agrupamiento por fecha, devuelve los valores acumulados en cada día, mientras que el ROLLUP exterior permite tomar la suma y cuenta total.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) Última edición por gnzsoloyo; 18/06/2010 a las 13:21 |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Tu resultado:
Código MySQL:
Ver original Mi resultado:
Código MySQL:
Ver original ¿Alguna duda?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: WITH ROLLUP no me suma una columna jeje, si es que tu resultado me cuenta 1 lead en la fecha 20100105 cuando el lead en realidad es en la fecha 20100107...entendes? Son dos conjuntos de fechas las que tengo que cruzar. Me he confundido en la query, en realidad para contar los leads me alcanza con un count(*)
Código MySQL:
Ver original Si te fijas las salidas tuya y mia, no coinciden en las fechas que te indico. Gracias!! |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Eso se soluciona con un ORDER BY en la subselect... Lo que sí facilitaría evitar este tipo de problemas hubiese sido poner la fecha con el tipo de dato correcto (DATE) y no como VARCHAR. Además, ahorrarías espacio en disco (8 bytes contra 14). Ahora estoy saliendo de la empresa. Luego te mando la propuesta.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Bien, habiendo tenido ya oportunidad de analizar el contenido de la tabla y viendo la estructura de datos, el error parece provenir de un defecto de diseño, sumado a un un desaprovechamiento de las propiedades de los campos. El tema es así: Hay cierta inconsistencia en la estructura de datos porque tienes dos columnas de fecha distintas y no hay forma que cumplan con una consulta óptima en esas condiciones. Además una de ellas hace que el otro campo se vuelva innecesario si sólo variará su valor de 1 a 0. Tu estructura es esta:
Código MySQL:
Todos los campos están declarados como NOT NULL, pero el caso es que de esos al menos fechaClick y fechaLead no deberían serlo porque sólo cuando se producen los eventos que los alimentan. Ver original Al cargarlos con un vacío no permites que exista un valor NULL, con lo que si quisieras contar los campos, los va a contar como si fuesen fechas. Por eso es que no sirve ese esquema. Esto es lo que hay:
Código MySQL:
Ver original La tabla, para tener una estructura coherente debería ser:
Código MySQL:
Los datos deberían ir así: Ver original
Código MySQL:
Y la consulta sería: Ver original
Código MySQL:
Ver original Nota: es muchísmo más eficiente guardar una fecha como DATE o DATETIME que como VARCHAR. ¿Por qué las pusiste en ese tipo de campo?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Hola gnzsoloyo, estuve analizando todo lo que comentas y la verdad eres un grande! Voy a tener muy en cuenta tus comentarios para mis proximos diseños de tablas, tus consejos me han sido de gran utilidad, muchas gracias!! Todo perfecto! tema solucionado |
| ||||
Respuesta: WITH ROLLUP no me suma una columna Hola gnzsoloyo, encontre un bug en la ultima consulta que me sugeristes y es que me cuenta dos recomendaciones en la fecha 2010-01-07, cuando deberia ser en la fecha 2010-01-05. Tienes idea como puedo hacer para discriminar ese caso?
Código MySQL:
Ver original Saludos! |
Etiquetas: |