1
respuesta

Error Code: 1055 en la sentencia ejercicio

Hola, cree una sentencia en sql para el ejercicio Listando con expresión natural el cual es:

select concat(
'El cliente ', b.nombre, 
' facturó ', convert(sum(b.volumen_de_compra), char(20)), 
' en el año ', convert(year(a.fecha_venta), char(20))
) as frase
from facturas a
inner join tabla_de_clientes b
on a.dni = b.dni
where year(fecha_venta) = 2016 
group by b.nombre, year(fecha_venta);

y me sale este tipo de error:

Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'jugos_ventas.a.FECHA_VENTA' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Tambien ejecute la solucion que se muestra:

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);

y tengo un error casi similar:

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

Si alguien sabe cual es el error o como solucionarlo le agradeceria mucho, de antemano muchas gracias

1 respuesta

Hola Moises, espero que estés bien!

El error indica que este modo SQL no reconoce lo que se hizo en el script, sin embargo, veo que cambiar el modo no soluciona el error, lo que soluciona es eliminar el modo.

Por ejemplo, vía consola mysql:

mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@sql_mode,'ONLY_FULL_GROUP_BY',''));

Saludos y buenos estudios!