Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Podsumuj według tygodnia, nawet dla pustych wierszy

Klauzula WHERE WHERE (sales.transDate BETWEEN @fromDate AND @toDate) usunie wszystkie tygodnie bez sprzedaży. Prawdopodobnie będziesz musiał wykonać podzapytanie, aby pobrać transakcje, a następnie dołączyć je do tabeli tygodni.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak samodzielnie dołączyć do tabeli w taki sposób, aby każdy rekord był połączony z poprzednim rekordem?

  2. PARSE() vs TRY_PARSE() w SQL Server:jaka jest różnica?

  3. Jak „odjąć” tabele sql?

  4. Wyjątek dotyczący maksymalnych parametrów SqlCommand przy 2099 parametrach

  5. Jak uzyskać bieżącą sumę kolumny w serwerze sql?