CROSSTAB QUERY LÀ GÌ

     

Hôm nay, bản thân xin hướng dẫn các bạn cách truy nã vấn chéo hay có cách gọi khác là Cross Tab Query trong SQL Server. Tự phiên bạn dạng Sql server 2005 trở đi Microsoft tích hợp thêm một feature new để truy hỏi vấn chéo là PIVOT TABLE, bởi vậy, mình đã hướng dẫn các bạn cách làm cho quen với PIVOT TABLE để đưa dữ liệu report để áp dụng cho Report.

Bạn đang xem: Crosstab query là gì

*

+ Để chúng ta dễ gọi hơn về Cross Tab query tốt Pivot Table, các chúng ta cũng có thể xem qua ví dụ bên dưới đây:

- Mình có bảng tài liệu tbl_sinhvien với tin tức điểm số của sinh viên như sau:

*

- Với tài liệu ở hình trên, thì để biết được sinh viên nào gồm môn học tập gì và số điểm từng nào thì quan sát rất là khó, bây giờ mình thích truy vấn chéo cánh để tài liệu hiển thị bao gồm hình hình ảnh như hình dưới mình vẫn dễ xem hơn.

*

- cùng với hình dưới, chúng ta thấy thông tin sẽ dễ nhìn hơn đề nghị không những bạn.

Bây giờ, mình sẽ hướng dẫn chúng ta cách tạo thành Cross Tab Query như hình trên.

Xem thêm: Nghệ Sĩ Hài Lê Quốc Nam Làm Ăn 3 Năm Lỗ 4 Tỉ, Phải Đi Ké Xe Máy Của Hồng Vân

Đầu tiên, các bạn cần tạo thành table như sau:

SELECT , AS , AS , ... AS FROM (- cùng với cú pháp trên, Dưới đó là câu lệnh Sql Pivot Table để hiển thị tài liệu theo từng sinh viên.SELECT tensv as , , , , FROM( SELECT tensv, diem, monhoc FROM tbl_sinhvien AS p ) AS jPIVOT( sum(diem) FOR monhoc IN (,,, )) as j- mặc dù nhiên, bản thân viết câu truy vấn sinh sống trên tôi đã thêm những cột môn học đã cố gắng định, , , , . Tuy nhiên giả sử, vào dữ liệu của bạn có khoảng 20 môn học, hay nhiều hơn không lẽ mình cần đi nhập những field mang lại từng môn học nhằm truy vấn, với cú pháp sử dụng STUFF, tiếp sau đây các các bạn sẽ làm đến câu truy vấn vấn của chính bản thân mình được năng động hơn.

DECLARE
columns += N', ' + quotename(monhoc) FROM (SELECT monhoc FROM tbl_sinhvien group by monhoc ) AS x;SET
columns, 1, 2, '') + 'FROM( SELECT tensv, diem, monhoc FROM tbl_sinhvien ) AS jPIVOT( SUM(diem) FOR monhoc IN (' + STUFF(REPLACE(
sql;Ở câu truy tìm vấn trên, mình tính sum tất cả số điểm, dường như các bạn có thể sử dụng những hàm thay thế sửa chữa cho hàm Sum như AVG, count... Phụ thuộc vào mục đích của bạn.

Xem thêm: " Eddy Current Là Gì Trong Tiếng Việt? Dòng Điện Foucault

Chúc các bạn thành công. Mọi câu hỏi thắc mắc đến bài viết xin tầm nã cập http://hoidap.90namdangbothanhhoa.vn để được support.

*