我想更新此绿色框行的数量列值200到100 ..怎么做?

时间:2016-01-08 03:18:20

标签: sql sql-server

这是tblSales表。它包含两行具有相同的值。我想更新此绿色框行..请帮助我..我是SQL Server的初学者。

enter image description here

表格的局部视图,从上图:

CustID   SalesDate    ItemId    Quantity   Amount
---------------------------------------------------
C1       2009-01-01   ABC       100        1000.00
C2       2009-01-01   ABC       200        2000.00
C4       2009-12-01   PQR       200        2000.00
C4       2009-12-01   PQR       200        2000.00   <---- this one!
C2       2009-01-04   XYZ       500        NULL
C1       2009-01-05   XYZ       NULL       500.00

2 个答案:

答案 0 :(得分:3)

  

在您的对象资源管理器上:   展开数据库,然后展开表格,然后右键单击表格&gt;并选择“编辑前200行”。

     

然后编辑并保存。

如果您想使用查询,可以使用RN

WITH CTE AS(
   SELECT *,
       RN = ROW_NUMBER()OVER(PARTITION BY CustID ORDER BY CustID)
   FROM tblSales
)
UPDATE CTE set Quantity='100' WHERE RN=2 and CustID='C4';

答案 1 :(得分:1)

由于我看不到整张桌子,我不确定这是否有用,但是。 。 。

你的记录可能有一个唯一的标识符(ID,主键等) - 它从你的图像中看出,重复的行在左边的字段中有一个唯一的(或至少是不同的)值(部分截止为图片)。假设这些行具有1-6的顺序ID。如果是这样,那么你可以做一个简单的UPDATE查询:

UPDATE tblSales
SET column_name = new_value, column_name2 = new_value . . .
WHERE ID = 4;

在这种情况下,指定要进行的更改 - 例如,更改第四行的数量:

UPDATE tblSales
SET quantity = 100
WHERE ID = 4;

如果该列中的ID不是唯一的,它仍然与上面的行不同,那么你可以这样做:

UPDATE tblSales
SET quantity = 100
WHERE id = 4 AND CustID = 'C4' and ItemID = 'PQR';

多个WHERE将在这种情况下唯一标识该行(您可以先将其作为SELECT查询运行,以确保在继续更新之前它只标识一行)

如果没有唯一标识符并且这些是真正重复的行,我建议您:https://support.microsoft.com/en-us/kb/139444