Gracia por tu respuesta,
Esta instrucción, es similar a una de las que he probado.
Código PHP:
$select=$db->prepare('
SELECT MonthName(f_fecha) as Month, year(f_fecha) as Year, sum(n_importe) as n_importe
FROM contabilidad
Group By YEAR(f_fecha), Month(f_fecha)') ;
Creo que para obtener lo que quiero deberia incluir un subselect para que me creará el campo del año actual.
Pongo una imagen de lo que sale con ambas instrucciones y lo que yo quiero conseguir.
muestro el codigo y la tabla donde quiero ponerlo.
Código PHP:
$select=$db->prepare('
SELECT MonthName(f_fecha) as Month, year(f_fecha) as Year, sum(n_importe) as n_importe FROM contabilidad WHERE n_importe<0 and year(f_fecha)=2017 Group By YEAR(f_fecha), Month(f_fecha)
union all
SELECT MonthName(f_fecha) as Month, year(f_fecha) as Year, sum(n_importe) as n_importe FROM contabilidad WHERE n_importe<0 and year(f_fecha)=2018 Group By YEAR(f_fecha), Month(f_fecha)');
$select->execute();
foreach ($select as $row) {
echo "<tr>";
echo "<td>" . $row['Month'] . "</td>";
echo "<td>" .number_format($row['n_importe'], 2, ',', '.')."</td>";
echo "<td>" .number_format($row['n_importe2'], 2, ',', '.')."</td>"; // me falta este campo
echo "</tr>";
}