【发布时间】:2026-02-19 17:55:01
【问题描述】:
我有一个 CTE_product 如下:
| Customer | ProductName | Quantity | Price |
|---|---|---|---|
| A | Apple | 2 | 2.00 |
| A | Banana | 3 | 1.00 |
还有一张表总计:
| CustomerName | Apple | Banana |
|---|---|---|
| A | 4.00 | 3.00 |
我想要的是计算CTE中每个产品的总价格并将其值更新到表Total中的相应列
这是我尝试过的查询:
UPDATE t
SET t.Apple = CASE WHEN ProductName = 'Apple' THEN cte.Quantity * cte.Price ELSE 0 END,
t.Banana = CASE WHEN ProductName = 'Banana' THEN cte.Quantity * cte.Price ELSE 0 END
FROM Total t
INNER JOIN CTE_product cte ON cte.CustomerName = t.CustomerName
使用此查询,只有 Apple 列具有值。
【问题讨论】:
-
总表的某些内容似乎不正确......每个水果真的是一个单独的列吗?
-
是的,当然。由于一些隐私,我必须修复我的数据列的名称。但是结构是正确的
标签: sql sql-server