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

truy vấn t-sql giữa bảng sự kiện và phạm vi ngày

Những gì bạn đang tìm kiếm thường được gọi là truy vấn chéo bảng. Nếu những gì bạn đang hỏi là làm thế nào để tạo một truy vấn chéo bảng được cung cấp một tĩnh danh sách các cột, bạn có thể làm như vậy:

Select Title
    , Min( Case When DatePart(mm, [Date]) = 7 And DatePart(yy, [Date]) = 2010 Then MetaData End ) As [Jul-10]
    , Min( Case When DatePart(mm, [Date]) = 8 And DatePart(yy, [Date]) = 2010 Then MetaData End ) As [Aug-10]   
    , Min( Case When DatePart(mm, [Date]) = 9 And DatePart(yy, [Date]) = 2010 Then MetaData End ) As [Sep-10]       
    ...
From Table
Where [Date] Between @StartDate And @EndDate
Group By Title

Tương tự, bạn có thể sử dụng chức năng PIVOT theo đề xuất của Broken Link. Tuy nhiên, cả giải pháp trên và chức năng PIVOT đều dựa vào tĩnh khai báo cột. Nếu những gì bạn muốn là một danh sách động gồm các cột (còn gọi là bảng chéo động), thì bạn đang ở ngoài giới hạn của những gì T-SQL chủ yếu được thiết kế để làm. Nó có thể với một số SQL động khó hiểu nhưng nó giòn và cồng kềnh. Thay vào đó, bạn nên tạo tập kết quả trong thành phần bậc trung hoặc sử dụng công cụ báo cáo sẽ tạo kết quả bảng chéo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể chuyển biến để chọn câu lệnh làm tên cột trong SQL Server không

  2. Cập nhật một trường của bảng hiện có với Logic Tăng dần Tự động

  3. SQL Server xử lý các giao dịch UPDATE như thế nào?

  4. Cách thực hiện truy vấn chuyển qua DELETE trong SQL Server

  5. bổ sung ngày tháng trong hàm sql