如何简化此查询?

时间:2012-11-24 08:27:42

标签: mysql sql

查询1:

SET @count = 0;
    UPDATE a_daily_copy_copy
    SET a_daily_copy_copy.Cummulative_Target = @count:= target + @count 
    where a_daily_copy_copy.Site_id = 1 
          and a_daily_copy_copy.Year=4 
          and a_daily_copy_copy.Billing_cycle=1
    ORDER BY date

查询2:修改了a_daily_copy_copy.Billing_cycle = 2

 SET @count = 0;
    UPDATE a_daily_copy_copy
    SET a_daily_copy_copy.Cummulative_Target = @count:= target + @count
    where a_daily_copy_copy.Site_id = 1 
          and a_daily_copy_copy.Year=4 
          and a_daily_copy_copy.Billing_cycle=2
    ORDER BY date

我是初学者,截至目前,我每次都通过编辑查询1来运行查询,我知道这两个查询都可以合并为一个查询。

我尝试用功能解决但无法想出请帮助我。

筛选了表格: enter image description here

1 个答案:

答案 0 :(得分:2)

在我看来你可以做到:

SET @count = 0;
    UPDATE a_daily_copy_copy
    SET a_daily_copy_copy.Cummulative_Target = @count:= target + @count where a_daily_copy_copy.Site_id = 1 and a_daily_copy_copy.Year=4 and a_daily_copy_copy.Billing_cycle IN (1, 2)
    ORDER BY date

...除非我错过了结算周期以外的两个查询之间的差异。