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