Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何简化此查询?_Mysql_Sql - Fatal编程技术网

Mysql 如何简化此查询?

Mysql 如何简化此查询?,mysql,sql,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:

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\u每日副本。计费周期=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手动运行查询,我知道两个查询都可以合并为一个查询

我试着按函数分组解决问题,但没能找到答案,请帮助我

已筛选表格:
在我看来,您可以:

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

…除非我遗漏了除计费周期之外的两个查询之间的差异。

您可以添加具有所需结果的示例记录吗?已添加表的屏幕截图!!从业务角度来看,这些子集是固定的吗(即,是否迟早需要以不同的方式计算累积计数?)如果是这样,我将去掉累积计数列,只需查询特定年份/计费周期/站点id中的记录计数(添加/减去任何其他限制)日期小于或等于特定日期的。如果累积总是按照这组条件进行分组,那么您的查询看起来不错,您无需进行任何更改来改进。建议查询您所建议的内容,即查询特定时间段内的记录数,该记录数大于或小于特定日期对我来说是有效的!!有点好奇,想知道有没有其他不同的方式获得!!