MySQL - Cree un procedimiento almacenado que reciba como parámetro de entrada un año

 
Vista:

Cree un procedimiento almacenado que reciba como parámetro de entrada un año

Publicado por Sebas (1 intervención) el 12/11/2020 02:38:12
Buenas queria saber como podria hacer el siguiente enunciado
Cree un procedimiento almacenado que reciba como parámetro de entrada un año y devuelva la variable con mayor cantidad vendida en ese año.
he intentado con esto:

1
2
3
4
5
6
7
SELECT
DP.CODIGO,
MAX(DP.CANTIDAD),
P.FEC_PED
FROM DETALLE_PEDIDO DP INNER JOIN PEDIDO P
ON DP.COD_PED = P.COD_PED
WHERE YEAR(P.FEC_PED) = '2018'

pero al poner max me aparece el error :
Column 'DETALLE_PEDIDO.CODIGO' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Espero su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 201
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Cree un procedimiento almacenado que reciba como parámetro de entrada un año

Publicado por Francisco (73 intervenciones) el 14/11/2020 16:00:59
Hola

El error te indica lo que falta, las funciones de agregado COUNT(), MAX(), MIN(), AVG() va a compañada de un GROUP BY

1
2
3
4
5
6
7
8
9
10
11
12
SELECT
  DP.CODIGO,
  P.FEC_PED,
  MAX(DP.CANTIDAD),
FROM
  DETALLE_PEDIDO DP
  INNER JOIN PEDIDO P ON DP.COD_PED = P.COD_PED
WHERE
  YEAR(P.FEC_PED) = '2018'
GROUP BY
  DP.CODIGO,
  P.FEC_PED

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar