gpt4 book ai didi

mysql - 显示本年度新销售增长的查询

转载 作者:行者123 更新时间:2023-11-29 16:09:35 26 4
gpt4 key购买 nike

我正在尝试寻找今年的新销售,定义为我们今年而非去年销售给的新客户,或者是我们今年向现有客户销售但去年未销售的新商品。

select sales1.Rep, sum(sales1.InvPrice) as newsales from sales sales1
where YEAR(sales1.InvDate)=YEAR(CURDATE()) and not exists (select 1
from sales sales2
where YEAR(sales2.InvDate)=YEAR(DATE_ADD(CURDATE(), INTERVAL -1, YEAR)) and
CONCAT(sales1.CustNo, sales1.Item)=CONCAT(sales2.CustNo, sales2.Item) limit 1)
group by sales1.Rep

该查询返回每个代表的销售额,但运行需要一个多小时。有没有更好的方法来编写这个查询,这样就不会花那么长时间?从 2017 年 1 月 1 日至今,我的销售表大约有 600,000 行。

最佳答案

你可以尝试这个,但是你有正确的索引吗?如果没有,请发布查询中的说明。

SELECT sales1.Rep
, sum(sales1.InvPrice) as newsales
FROM sales sales1
WHERE sales1.InvDate BETWEEN DATE_FORMAT(NOW(),'%Y-01-01 00:00:00') AND DATE_FORMAT(NOW(),'%Y-12-31 23:59:59')
AND NOT EXISTS (
SELECT 1 FROM sales sales2
WHERE sales2.InvDate BETWEEN DATE_FORMAT(NOW() - INTERVAL 1 YEAR '%Y-01-01 00:00:00')
AND DATE_FORMAT(NOW() - INTERVAL 1 YEAR,'%Y-12-31 23:59:59')
AND ( sales1.CustNo = sales2.CustNo AND sales1.Item = sales2.Item)
LIMIT 1)
GROUP BY sales1.Rep;

关于mysql - 显示本年度新销售增长的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55384921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com