我有一张看起来像这样的桌子:
SetId ID Premium 2012 5 Y 2012 6 Y 2013 5 N 2013 6 N
我想使用setid等于2012的溢价值来更新2013年的记录.
所以在查询之后,它将如下所示:
SetId ID Premium 2012 5 Y 2012 6 Y 2013 5 Y 2013 6 Y
任何帮助非常感谢
解决方法
不清楚你想用哪个2012值来更新哪个2013值,我假设ID应该是一样的.
使用表变量的完整示例,您可以在管理工作室中测试自己.
DECLARE @Tbl TABLE ( SetId INT,Id INT,Premium VARCHAR(1) ) INSERT INTO @Tbl VALUES (2012,5,'Y') INSERT INTO @Tbl VALUES (2012,6,'Y') INSERT INTO @Tbl VALUES (2013,'N') INSERT INTO @Tbl VALUES (2013,'N') --Before Update SELECT * FROM @Tbl --Something like this is what you need UPDATE t SET t.Premium = t2.Premium FROM @Tbl t INNER JOIN @Tbl t2 ON t.Id = t2.Id WHERE t2.SetId = 2012 AND t.SetId = 2013 --After Update SELECT * FROM @Tbl