是否可以将行转换为列然后根据特定值求和而不使用 sql 中的 Pivot 函数?

Is it possible to convert the rows to columns then sum the amount according to specific values without using Pivot function in sql?

是否可以将行转换为列并找到每个客户的笔记本电脑和台式机的金额总和,并将它们存储在笔记本电脑和台式机的单独列中而不使用数据透视表函数

table创作:

CREATE TABLE Customers
(
       CustomerName VARCHAR(50),
    ProductName VARCHAR(50),
    Amount INT
);

INSERT INTO Customers VALUES('James', 'Laptop', 30000);
INSERT INTO Customers VALUES('James', 'Desktop', 25000);
INSERT INTO Customers VALUES('David', 'Laptop', 25000);
INSERT INTO Customers VALUES('Smith', 'Desktop', 30000);
INSERT INTO Customers VALUES('Pam', 'Laptop', 45000);
INSERT INTO Customers VALUES('Pam', 'Laptop', 30000);
INSERT INTO Customers VALUES('John', 'Desktop', 30000);
INSERT INTO Customers VALUES('John', 'Desktop', 30000);
INSERT INTO Customers VALUES('John', 'Laptop', 30000);

客户产出:

CustomerName   ProductName  Amount
James          Laptop       30000
James          Desktop      25000
David          Laptop       25000
Smith          Desktop      30000
Pam            Laptop       45000
Pam            Laptop       30000
John           Desktop      30000
John           Desktop      30000
John           Laptop       30000

期望的输出:

CustomerName    Laptop  Desktop
David           25000   null
James           30000   25000
John            30000   60000
Pam             75000   null
Smith           null    30000

有了已知的 ProductName 值,它可以用 CASE WHEN

查询
SELECT CustomerName, 
SUM(CASE WHEN ProductName = 'Laptop' THEN Amount ELSE 0 END) Laptop,
SUM(CASE WHEN ProductName = 'Desktop' THEN Amount ELSE 0 END) Desktop
FROM Customers 
GROUP BY CustomerName