我有一个包含以下列和数据的表:
Invoice # Quantity Item Id
21589 265 L-s20-02-0
在这种情况下,有265条记录具有相同的信息。如果记录的数量与数量相同,我希望能够将数量列更新为1。在这种情况下,如果有265条记录匹配相同的发票号,数量和物料ID
答案 0 :(得分:2)
这是一个奇怪的请求,但可以使用窗口函数:
;WITH toupdate AS (
SELECT t.*,
COUNT(*) OVER (PARTITION BY invoice, item, quantity) AS cnt
FROM t
)
UPDATE toupdate
SET quantity = 1
WHERE cnt = quantity;