AGRUPANDO CAMPOS DATETIME CON MARIADB

Es un hechizo simple pero inquebrantable.

Dr. Strange

Seguimos con esta sección de es un hechizo simple pero inquebrantable. creada por nuestro buen amigo @fertxo. y es que en seguimos con nuestro sistema ALUX. Y ahora estamos desarrollando la parte del Dashboard. Que es un modulo que mostrar en base ha widgets. Información en forma de gráficas. 

dashboard alux junglacode

 

El primer widget que vamos hacer es mostrar las ventas obtenidas por todos los vendedores a lo largo de una semana. Así que el primer vamos hacer uso del las siguientes setencias GROUP BY , DATE_FORMAT y SET lc_time_names . Este script puede funcionar para mysql también.

El problema es lo siguientes si hacen un GROUP BY, con el campo de la fecha verán que no se agrupa de la manera correcta y esto es debido a que un datetime tiene el formato 26-06-2019 11:11:11 y es muy poco probable que una fecha venta se realice el mismo día y la misma hora. Por eso vamos hacer un DATE_FORMAT(campo,’%Y-%m-%d’) . Para solo sacar la parte que nos interesa que es 26-06-2019 y de esta manera ya obtener las ventas por día. Ahora debemos hacer que la impresión nos arroje el día. Ahora usaremos DATE_FORMAT(date_sale,’%a’). Para sacar el nombre del día.  Y para concluir verán que eso lo arroja en ingles.Usaremos lo siguienteSET lc_time_names = ‘es_ES’; Con esto la salida sera en español.

El Script

SET lc_time_names = 'es_ES';
SELECT sum(s.total) , u.username , DATE_FORMAT(date_sale,'%a')
FROM ventas AS s INNER JOIN usuarios AS u
ON s.id_user = u.id
WHERE date_sale BETWEEN '2019-06-24' AND '2019-06-30' 
GROUP BY s.id_user,DATE_FORMAT(date_sale,'%Y-%m-%d')

La salida

--------------------------------

Total | Usuario | Dia

-------------------------------

11,615.00 | ventasB | lun
675.00      | ventasB | mar
20.00        | ventasC | lun
11,11.00   | ventasC | mar
60.00        | ventasD | lun
59.11        | ventasD | mar

Bueno con esto damos por terminado la extracción de datos si quieren saber como vamos a incrustar los datos en el widget. Síguenos en el siguiente Articulos.

 

Bibliográficas.

https://www.w3schools.com/sql/func_mysql_date_format.asp

http://www.mysqltutorial.org/mysql-group-by.aspx

https://dev.mysql.com/doc/refman/8.0/en/locale-support.html

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *