tag strip_tags remove name ejemplo all php mysql sql group-by running-total

php - strip_tags - El mes de totales mensuales devuelve NULL y solo muestra el total acumulado



strip_tags wordpress (4)

SUM(pricequoted) AS pricequotedtotal, SUM(partprice) AS partpricetotal, SUM(profit) profittotal,

Debiera ser

SUM(pricequoted) AS pricequotedtotal, SUM(partprice) AS partpricetotal, SUM(profit) AS profittotal,

Te perdiste un "AS"

Estoy usando lo siguiente para tratar de generar mis totales mensuales en un formato como:

January Quoted Total : £678 Parts Total : £432 Profit Total : £244 February Quoted Total : £650 Parts Total : £345 Profit Total : £123

etc ..........

// Work Complete Totals $query = $db->query("SELECT SUM(pricequoted) AS pricequotedtotal, SUM(partprice) AS partpricetotal, SUM(profit) profittotal, DATE_FORMAT(''%Y-%m'', completeddate) AS month FROM `jobdetails` WHERE jobstatus=''complete'' GROUP BY DATE_FORMAT(''%Y-%m'', completeddate)"); echo ''<div style="float:right; padding-right:10px;">''; echo ''<strong>Work Complete Totals</strong>''; while($result = $query->fetch_object()) { $pricequoted = number_format($result->pricequotedtotal, 2, ''.'', ''''); $partprice = number_format($result->partpricetotal, 2, ''.'', ''''); $profit = number_format($result->profittotal, 2, ''.'', ''''); echo ''<p><strong style="color:red;">Quoted Total : &pound;''.$pricequoted.''</strong></p>''; echo ''<p><strong style="color:Darkorange ;">Parts Total : &pound;''.$partprice.''</strong></p>''; echo ''<p><strong style="color:green;">Profit Total : &pound;''.$profit.''</strong></p>''; } echo ''</div>'';

El problema que estoy recibiendo es que solo está produciendo los totales acumulados, así que obtengo lo siguiente al final de la página UNA VEZ, pero nada más:

Work Complete Totals Quoted Total : £1460.00 Parts Total : £541.43 Profit Total : £918.57

Si ejecuto la consulta anterior en phpmyadmin obtengo el resultado:

pricequotedtotal partpricetotal profittotal month 1460 541.43 918.5699999999998 NULL

El diseño de mi mesa es el siguiente:

id customerID name facebookuserurl tel email address itemforrepair repairdetails otherdetails pricequoted partprice profit datepartordered jobstatus dateofcompletion datecreated itemnumber

Debajo hay una fila de muestra:

49 37ac4 Ellen Frost https://www.facebook.com/ellen.mccormick.18 Galaxy S3 (Fullsize) Blue Broken front glass and also digitiser not working. Quoted customer on whole lcd, digitiser assembly r... 140 114.98 25.02 2013-05-02 complete 2013-05-08 2013-05-01 251258104217

EDITAR >> A continuación se muestra una captura de pantalla de varias filas en la tabla.

EDIT >>

Esta es mi estructura de tabla:


Debes cambiar esto

DATE_FORMAT(''%Y-%m'', completeddate)

a

DATE_FORMAT(completeddate, ''%Y-%m'')

Es por eso que obtienes NULL en tu columna de month y por lo tanto solo una fila.

Ver entrada manual .


Bueno, puedes intentar esta consulta

SELECT SUM(pricequoted) AS pricequotedtotal, SUM(partprice) AS partpricetotal, SUM(profit) AS profittotal, MONTHNAME(completeddate) AS month FROM `jobdetails` WHERE jobstatus=''complete'' GROUP BY MONTH(completeddate)

La columna ''completeddate'' no existe en la tabla anterior, en su lugar use ''dateofcompletion''

Por lo tanto, ejecutar la consulta y ponerlos en while loop producirá exactamente lo que querías

También vi su estructura de tabla, es mejor formatear una tabla un poco usando varchar , int , float , etc. columnas de text consumen más memoria

http://www.pythian.com/blog/text-vs-varchar/

http://nicj.net/mysql-text-vs-varchar-performance/


Ian,

Supongo que la siguiente consulta te ayudará.

SELECT SUM (pricequoted) AS pricequotedtotal, SUM (partprice) AS partpricetotal, SUM (profit) profittotal, MONTHNAME (dateofcompletion) FROM jobdetails DONDE jobstatus = ''complete'' GROUP BY DATE_FORMAT (dateofcompletion, ''% Y-% m'') ordena por fechadecompletar ;

+------------------+----------------+-------------+-----------------------------+ | pricequotedtotal | partpricetotal | profittotal | MONTHNAME(dateofcompletion) | +------------------+----------------+-------------+-----------------------------+ | 140 | 114.98 | 25.02 | May | | 140 | 114.98 | 25.02 | June | +------------------+----------------+-------------+-----------------------------+ 2 rows in set (0.00 sec)