将每个实例的行值复制到另一行

时间:2018-08-16 17:20:25

标签: sql-server copy

我的SQL Server表Company_Month_Coupon如下所示:

  • ID
  • CompanyID
  • 总优惠券
  • 年份

有一个错误:从7月开始的所有值都设置为8月。

我要执行的操作是选择8月的值并将其复制到7月。

我该如何为每个公司执行此操作?

我尝试过:

UPDATE Company_Month_Coupons
SET Total_Coupons = (SELECT Total_Coupons 
                     FROM Company_Month_Coupon 
                     WHERE Month = 8 AND Year = YEAR(GETDATE()))
WHERE Month = 7 AND Year = YEAR(GETDATE())

但这返回:

  

子查询返回了多个值。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。

3 个答案:

答案 0 :(得分:0)

您必须有多个记录,其中Month = 8,Year =2018。否则,您不会收到该错误。

答案 1 :(得分:0)

像这样吗?

C:\> code --install-extension SeleniumHq-Selenium.WebDriver.Extensions 3.9.1

答案 2 :(得分:0)

如果这是整个问题,

  

有一个错误:从7月开始的所有值都设置为8月。

然后解决方案似乎很简单。

如果7月份有空白记录要解决,那么您可能需要先删除这些记录。如果您有两组记录,那么无论您如何解决此问题,最终都将不得不删除其中一组记录。

DELETE
FROM Company_Month_Coupons 
WHERE 
  Month = 7
  AND
  Year = 2018;

然后将所有八月记录更改为七月记录。

UPDATE Company_Month_Coupons 
  SET Month = 7
WHERE 
  Month = 8
  AND
  Year = 2018;