Bạn có thể thực hiện việc này với toán tử 'pivot'. Một cái gì đó như thế này (mặc dù tôi chắc chắn rằng tôi đã hiểu một số chi tiết chính tả hoặc cú pháp ...):
select catTitle, [1] as site1, [2] as site2, [3] as site3, [4] as site4, [5] as site5
from (select category.catTitle, equipment.quantity, site.title
from equipment
inner join site
on (equipment.siteid = site.siteid)
inner join category
on (category.catid = equipment.catid)
)
pivot
(
sum (quantity)
for equipment.siteid in ( [1], [2], [3], [4], [5] )
) as pvt
order by pvt.category;
Vấn đề với điều này là bạn cần biết chính xác tập hợp id trang web mà bạn muốn đưa vào truy vấn. Nếu bạn cần một bảng chéo động hơn (như bạn có thể lấy trong Excel), thì bạn cần tạo văn bản truy vấn dưới dạng một chuỗi và sử dụng sp_executesql để chạy nó. Trong văn bản đã tạo, bạn bao gồm nhiều "[1], [2], [3], [4], [5] ..." và "[1] dưới dạng site1, [2] dưới dạng site 2.. . "những thứ bạn cần.