sql >> Databasteknik >  >> RDS >> Sqlserver

Sammanfatta efter vecka, även för tomma rader

Where-satsen WHERE (sales.transDate BETWEEN @fromDate AND @toDate) tar bort eventuella veckor utan försäljning. Du kommer sannolikt att behöva göra en underfråga för att hämta transaktionerna och sedan lägga till den i din veckas tabell.

SELECT Weeks.WeekNum, SUM(sales.quantity) AS sales
FROM Weeks LEFT OUTER JOIN 
 (
    SELECT *
    FROM sales 
    WHERE (sales.transDate BETWEEN @fromDate AND @toDate)
 ) sales
    ON Weeks.WeekNum = DATEPART(week, sales.transDate)
GROUP BY Weeks.WeekNum


  1. Ett ihållande tillfälligt bord?

  2. Hur man ställer in AUTO_INCREMENT från en annan tabell

  3. Ta reda på den lagrade anropsproceduren i SQL Server

  4. Hur konverterar jag från en pengadatatyp i SQL-server?