webForumDet fria alternativet

Beräkna mest sålda

Databaser & SQL

0 svar · 536 visningar · startad av Dino

Medlem sedan sep. 20011 914 inlägg
Frågan#1

Detta är en vidareutveckling på tråden Beräkna försäljningsstatistik.

Vill nu ta ut den mest sålda produkten per år/månad/dag mellan två datum.

Resultatet med nedan sql blir:

Datum              Quantity           SKU 
2007-10-28              1           LE_003_B                                           
2007-10-28              1           LE_003_C                                           
2007-10-28              2           TOY_009                                            
2007-10-29              0                                                              
2007-10-30              6           TOY_019_1 
2007-10-30              1           TOY_018_3                                          
2007-10-31              0
SELECT	c.dt as [Date], COALESCE(COUNT(oi.Quantity),0) as Quantity, p.SKU
FROM	dbo.Calendar as c LEFT OUTER JOIN 
		dbo.[Order] as o ON o.CreateDate >= c.dt
			AND o.CreateDate < dateadd(day,1,c.dt) LEFT OUTER JOIN 
		dbo.[OrderItem] as oi ON o.Id = oi.OrderId LEFT OUTER JOIN 
			dbo.[Product] as p ON oi.ProductId = p.Id
WHERE	c.dt BETWEEN @startdate AND @enddate
GROUP BY c.dt, p.SKU
ORDER BY c.dt;

Önskat resultat är:

Datum              Quantity           SKU                                           
2007-10-28              2           TOY_009                                            
2007-10-29              0                                                              
2007-10-30              6           TOY_019_1                                          
2007-10-31              0

Tack.

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)