Using GROUPing or ROLLUP rather than SUMing every column
If I understand correctly, the ideal solution would need GROUP BY GROUPING SETS which is not available in MySQL.

Your two options are to use


WITH ROLLUP:

SELECT date, type, currency, 
       SUM(orders) AS orders, SUM(qty) AS qty, 
       SUM(shipped_orders) AS shipped_orders, 
       SUM(shipped_qty) AS shipped_qty, 
       SUM(return_qty) AS return_qty,
       SUM(shipped_minus_returns_units) AS shipped_minus_returns_units
FROM daily_report 
WHERE date &gt;= '2015-07-01' AND date &lt;= '2015-07-29'
GROUP BY date, type, currency
  WITH ROLLUP ;

two queries, one simple and one with the aggregations needed and UNION ALL:

SELECT date, type, currency, 
       orders, qty, shipped_orders, 
       shipped_qty, return_qty, shipped_minus_returns_units
FROM daily_report 
WHERE date &gt;= '2015-07-01' AND date &lt;= '2015-07-29'

UNION ALL

SELECT date, type, NULL, 
       SUM(orders), SUM(qty), SUM(shipped_orders),
       SUM(shipped_qty), SUM(return_qty), SUM(shipped_minus_returns_units)
FROM daily_report 
WHERE date &gt;= '2015-07-01' AND date &lt;= '2015-07-29'
GROUP BY date, type 

ORDER BY date, type, currency ;



The first option will have more groupings than you need (per date only and a single total in the end).