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.