PIVOT operator in T-SQL allows only one pivot column, so if you do want to use the PIVOT operator, you would have to pivot them separately and then join the 3 sub-pivots somehow. Not sure that that is the most readable or efficient approach. For what it is worth, what I am thinking is something like this, but not necessarily recommending this:SELECT * FROM (SELECT a AS AQty, b AS BQty, c AS CQty FROM (SELECT CompanyName,qty FROM Tbl ) s PIVOT(SUM(qty) FOR companyname IN ([a],[b],[c]))P1 )P1 CROSS JOIN (SELECT a AS AAmount, b AS BAmount, c AS CAmount FROM (SELECT CompanyName,amount FROM Tbl ) s PIVOT(SUM(amount) FOR companyname IN ([a],[b],[c]))P2 )P2 CROSS JOIN (SELECT a AS ATax, b AS BTax, c AS CTax FROM (SELECT CompanyName,tax FROM Tbl ) s PIVOT(SUM(tax) FOR companyname IN ([a],[b],[c]))P3 )P3