首先,我们可以使用子查询来计算两个表中的累积总和。然后,我们可以使用CASE语句来比较这两个总数,并根据需要更改其中一个。
例如,我们有两个表sales和targets,每个表都有日期和销售/目标列。我们想计算每个日期的销售总额和目标总额,并将总额大于目标总额的销售总额更改为目标总额。
查询的示例代码如下:
SELECT s.date, s.sales, t.targets, (CASE WHEN s.sales > t.targets THEN t.targets ELSE s.sales END) AS final_sales FROM (SELECT date, Sum(sales) AS sales FROM sales GROUP BY date) AS s JOIN (SELECT date, Sum(targets) AS targets FROM targets GROUP BY date) AS t ON s.date = t.date
在此示例中,子查询计算了每个日期的销售总额和目标总额,并将它们合并在一起。然后,CASE语句用于比较这两个总数,并更改需要更改的销售总额。最后,结果按日期返回,包含原始销售总额,目标总额和经过更改的销售总额。