的背景
我有一个临时表,其中包含包括唯一 rowID、OrderNumber 和 guestCount 在内的信息。此表中已经存在 RowID 和 OrderNumber,我正在运行一个新查询来为每个 orderNumber 填充缺失的 guestCount。然后我想用这些信息更新临时表。
例子
我目前拥有的东西看起来像这样,只有 RowID 是唯一的,这意味着可以有多个项目具有相同的 OrderNumber。
RowID | OrderNumber | guestCount
1 | 30001 | 0
2 | 30002 | 0
3 | 30002 | 0
4 | 30003 | 0
我的查询返回下表,每个 orderNumber 只返回一个客人总数:
OrderNumber | guestCount
30001 | 3
30002 | 10
30003 | 5
决赛桌应如下所示:
RowID | OrderNumber | guestCount
1 | 30001 | 3
2 | 30002 | 10
3 | 30002 | 0
4 | 30003 | 5
我只对每个 orderNumber 更新一个(不管是哪个)条目感兴趣,但我当前的逻辑导致错误:
UPDATE temp
SET temp.guestCount = cc.guestCount
FROM( SELECT OrderNumber, guestCount
FROM (SELECT OrderNumber, guestCount, RowID = MIN(RowID)
FROM #tempTable
GROUP BY RowID, OrderNumber, guestCount) t)temp
INNER JOIN queryTable q ON temp.OrderNumber = q.OrderNumber
我不确定这个逻辑是否是一种有效的方法,但我知道我在更新中遇到了错误,因为我使用了聚合函数以及 GROUP 函数。有什么方法可以以不同的方式进行此操作吗?