2011-03-08 18 views
6

Por ejemplo, tengo una tabla como la siguiente:MySQL: Obtener total última fila de resultado MySql

product | quantity | something 
------------------------------- 
abc | 5  | 2 
xzy | 5  | 2 
asd | 10  | 2 

Cuando necesito todos los registros que hago de esta manera y obtener 3 resultados:

select * from tableName 

Pero quiero obtener una cuarta fila para un total de cantidad (50) y algo (6). ¿Es posible en la consulta sql o tengo que repetir mi resultado para obtener el total después de la ejecución de la consulta? Quiero hacer esto en la consulta si es posible.

+0

creo que necesita para ejecutar su solicitud de nuevo con un 'SUM()' declaración (ver http://www.tizag.com/mysqlTutorial/mysqlsum.php) – Tsadiq

Respuesta

14
(SELECT product, 
     quantity, 
     something 
FROM tablename) 
UNION 
(SELECT "all"   AS product, 
     SUM(quantity) AS quantity, 
     SUM(something) AS something 
FROM tablename) 

Esto es una consulta de trabajo. Se añadirá una cuarta fila según se desee al final de su resultado

1
 
$q="select sum(quantity), sum(something) from tableName"; 
1

que no es la mejor manera de resolver esto, pero debe hacer el truco

select product, quantity, something from tableName 
union 
select 'sum', sum(quantity), sum(something) from tableName 
2

Usted podría

SELECT Product, Quantity, Something 
FROM TABLENAME 

UNION 

SELECT 'ALL', SUM(Quantity),SUM(Something) 
FROM TABLENAME 

Sin embargo, esto no agregaría una fila en su tabla. Lo cual probablemente no sea una buena idea de todos modos.

9

Puede usar paquete de continuación para generar los totales, pero hay que cambiarlo a una función de agregado, como esto:

SELECT product, sum(quantity), sum(something) 
FROM tableName 
GROUP BY product WITH ROLLUP 
Cuestiones relacionadas