Hice el siguiente SQL:
SELECT YEAR(F.FECHA) AS FECHA, CEIL(F.IMPUESTO*SUM(I.CANTIDAD*I.PRECIO)) AS VALOR_IMPUESTO_PAGO
FROM FACTURAS F
INNER JOIN ITEMS I
ON I.NUMERO = F.NUMERO
WHERE YEAR(F.FECHA) = 2021
GROUP BY F.FECHA;
Y me salio el resultado correcto. Pero el del profesor es este:
SELECT YEAR(FECHA), CEIL(SUM(IMPUESTO * (CANTIDAD * PRECIO)))
AS RESULTADO
FROM facturas F
INNER JOIN items I ON F.NUMERO = I.NUMERO
WHERE YEAR(FECHA) = 2021
GROUP BY YEAR(FECHA);
La diferencia esta en el group by, pero no se realmente por que saldría lo mismo, pienso que es por el orden, Por ejemplo:
- Primero de ejecuta el WHERE
- Luego el Group BY
- Si es asi, entonces creo que no hay conflicto, pues la tabla resultante despues del where, son todas del 2021 y además es de la misma fecha, es por eso que salio igual: Pero realmente mi código estaba mal. Saludos