Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tổng kết theo tuần, ngay cả đối với các hàng trống

Mệnh đề where WHERE (sales.transDate BETWEEN @fromDate AND @toDate) sẽ loại bỏ bất kỳ tuần nào không có doanh số bán hàng. Có thể bạn sẽ cần thực hiện một truy vấn con để kéo các giao dịch và sau đó kết hợp nó vào bảng tuần của bạn.

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. Cách sử dụng Câu lệnh GO trong SQL Server để Chèn Bản ghi trong Cột Định danh - Hướng dẫn SQL Server / T-SQL Phần 42

  2. Tên cột Dynamic SQL Server Pivot (UNPIVOT) thành một giá trị hàng

  3. Đối số thời gian chờ của pyodbc.connect bị bỏ qua đối với các cuộc gọi đến SQL Server

  4. Làm cho SQL Server thao tác dữ liệu nhanh hơn - tắt ghi nhật ký giao dịch?

  5. Cấp quyền SELECT trên một chế độ xem, nhưng không cấp cho các đối tượng cơ bản