我需要一种矩阵结果集。真实情况很复杂,但是下面的示例可以做到。
让我们说我有3张桌子:
Customers
- ID
- Name
Products
- ID
- Name
Purchases
- ID
- Customers_ID
- Products_ID
- Amount
现在,我需要一个具有垂直方向的客户,水平(作为字段)产品以及每个客户/每个产品销售量的结果集。
是这样的:
Customers.Name Prod#1 Prod#2 Prod#3<br>
Customer #1 10 5 300<br>
Customer #2 5 1 10<br>
Customer #3 50 12 23<br>
如何在SQL Server(任何版本)中完成此操作
答案 0 :(得分:0)
您可以尝试使用数据透视
select customername,[Prod1],[Prod2],[Prod3] from
(
select c.name as customername,p1.name as productname, Amount from purchases p
left join customers c on p.Customers_ID=c.id
left join products p1 on p.Products_ID-p1.ID
) a
pivot(max(amount) for productname in ([Prod1],[Prod2],[Prod3])) pv