Hola. Realicé el ejercicio pero cuando lo comparé con el del profesor, resulta que la respuesta dada por el profesor me generaba un error, especificamente este:
18:47:14 SELECT CONCAT('El cliente ', TC.NOMBRE, ' facturó ', CONVERT(SUM(IFa.CANTIDAD * IFa.precio), CHAR(20)) , ' en el año ', CONVERT(YEAR(F.FECHA_VENTA), CHAR(20))) AS FRASE FROM facturas F INNER JOIN items_facturas IFa ON F.NUMERO = IFa.NUMERO INNER JOIN tabla_de_clientes TC ON F.DNI = TC.DNI WHERE YEAR(FECHA_VENTA) = 2016 GROUP BY TC.NOMBRE, YEAR(FECHA_VENTA) LIMIT 0, 1000 Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'jugos_ventas.F.FECHA_VENTA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 0.000 sec
Estuve buscando la manera de corregir el error, pero no entendí la razón por la cuál funciona y la respuesta del profesor no.
La solución es simplemente quitar la función YEAR() del Group by y poner el campo FECHA_VENTA solo. De esta manera ya funciona. Estuve buscando una explicación ya que anteriormente ya había tenido este inconveniente cuando intentaba poner en el group by una función como YEAR(). Por favor, si alguien puede explicarme de manera simple esto, le agradecería mucho.
Por otro lado, esta fue mi respuesta al ejercicio(Solo para compartir): select concat("El cliente ", NOMBRE, " facturó " , CONVERT(SUM(CANTIDAD*PRECIO),CHAR(20)), " en el año 2016.")AS ANUNCIO from tabla_de_clientes CL inner join facturas FAC on CL.DNI = FAC.DNI inner join items_facturas IFAC on IFAC.NUMERO = FAC.NUMERO group by NOMBRE;