No dices que hay que hacer con el campo sección?
Tampoco entiendo porque conviertes la fecha, si tiene formato DATE,
o DATETIME, la puedes usar directamente.
Por secciones
Código MySQL:
Ver original t1.seccion,
t3.importe AnioAnt,
(t1.importe/t2.importe)*100 RealSPrev,
(t1.importe/t3.importe)*100 RealSAnioAnt
AND t1.seccion
=t2.seccion
) AND t1.seccion
=t3.seccion
;
Sumado
Código MySQL:
Ver original (SUM(t1.importe
)/SUM(t2.importe
))*100 RealSPrev
, (SUM(t1.importe
)/SUM(t3.importe
))*100 RealSAnioAnt
AND t1.seccion
=t2.seccion
) AND t1.seccion
=t3.seccion
(Estoy suponiendo que tienes sumadas las ventas diarias y por secciones)
Lo normal seria partir de dos tablas Ventas
idVenta
fecha
seccion
idCliente
....
DetalleVenta
idDetVenta
idVenta
idProducto
cantidad
pvp
...
A partir de esa estructura se puede construir dos vistas que den las ventas de el año actual y del año anterior respectivamente. Con lo que obtienes los datos directamente de lo que los ha producido, las ventas individuales, sin guardar datos calculados en ninguna tabla.
Ejecutando esto una vez ya tienes un objeto llamado "VentasActual" que siempre dara las ventas del año actual sea el que sea y que se comporta exactamente igual que una tabla sin serlo (para querys SELECT.... no para las otras)
Mas... la previsión, dudo que se trabaje con algo tan fino como previsiones diarias, pero si es el caso esa tabla serviria. Tambien podrias trabajar con una tabla de previsiones continua para distintos ejecicios y implementar una tercera vista con las previsiones del año actual.
La solución que te he dado para las tablas serviria para las vistas que te suguiero, cambiando tablas por las vistas equivalentes.
Planteatelo es una estrutura más correcta y sobre todo segura.