SQL - Inner Join problemas indexacion dato

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 27 puestos en SQL (en relación al último mes)
Gráfica de SQL

Inner Join problemas indexacion dato

Publicado por Joel (3 intervenciones) el 05/09/2020 07:09:48
Estimados:

Junto con saludar y desear un buen dia a todos, estoy con un problema que no he podido resolver y me parte la cabeza =/, estoy tratando de realizar una consulta que me retorne el producto mas vendido en el año 2018 de la table Sale, el cual logre extraer esa información, pero me extrae el ID del producto y no los detalles como el nombre, tipo etc que estan en otra tabla llamada Product...
entiendo que se usa un Inner Join para unir ambas tablas y extraer los datos, aun así ingreso el Inner Join pero no me extrae los datos del producto que mas se vendió.

Las tablas son:

Sales
SalesID (PK)
ProductID (FK)
Quanitity
price


Product
ProductID (PK)
NameProduct

mi consulta SQL es la siguiente:

1
2
3
4
5
SELECT TOP 5 a.ProductID, SUM(Quantity) as VENDIDO
from Sale a INNER JOIN Product b
on a.ProductID=b.ProductID AND SalesDate BETWEEN '2018-01-01' AND '2018-12-31'
GROUP by a.ProductID
ORDER by 2 DESC


desde ya agradezco cualquier informacion a la comunidad!,
Muchas gracias!!!

1
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Inner Join problemas indexacion dato

Publicado por Isaias (1921 intervenciones) el 07/09/2020 17:02:21
¿Que motor de base de datos usas?
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

Inner Join problemas indexacion dato

Publicado por joel (3 intervenciones) el 07/09/2020 17:07:18
Sql Server 2017, montado en docker.
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Inner Join problemas indexacion dato

Publicado por Isaias (1921 intervenciones) el 08/09/2020 04:01:39
Debes indicar en tu SELECT que columnas deseas ver, lo mismo en el GROUP BY
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
sin imagen de perfil

Inner Join problemas indexacion dato

Publicado por anonymous (43 intervenciones) el 08/09/2020 04:32:52
SI, lo que te comenta Isaias es correcto, siempre hay que agrupar por las mismas columnas que tengas en el select

Pero como tienes confeccionado el query te devuelve es los 5 productos más vendidos en el 2018

Podrías obviar el Between si le dices AND YEAR (SalesDate) = 2018

Y/o realizar un query anidado donde visualices los detalles del producto en el query externo y en el interno buscas ya el producto más vendido
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

Inner Join problemas indexacion dato

Publicado por joel (3 intervenciones) el 08/09/2020 05:27:08
Ya lo resolvi,
Muchas Gracias!.

1
2
3
4
5
6
7
8
USE Grupo3_Sales
Select TOP 1 p.*, d.COMPRAS
From (
	SELECT a.CustomerID, SUM(Quantity) as COMPRAS
	from dbo.Sale a
	GROUP by a.CustomerID
	) d inner join dbo.Customer p on d.CustomerID = p.CustomerID
order by COMPRAS desc
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