以下查询有效,但我想稍作修改。
照原样,它将从客户表中选择所有不在该文件中的上一个函数数组中的客户(因此,请选择“ NOT IN($ dealerNum')”。它将对所有其他客户运行查询,并检索他们的如果他们在过去6个月内的12个月内有订单,则为数字(我正在18个月的窗口内工作)。
我需要对此稍作更改。我仍然想在不在先前阵列中的任何客户上运行它。但是,我想检索最近6个月内有订单但没有12个月内有订单的任何客户的数量。基本上表明他们至少在当年/ 12个月内活跃,并且在最近6个月内一直活跃。
希望这是有道理的。这是现有的查询,我不确定是否最好/最合理的方式来修改WHERE以处理此问题
SELECT c.customerNumber
FROM Customers C
INNER JOIN Orders G ON C.CustomerNumber = G.Customer
WHERE c.customerNumber NOT IN ($dealerNum)
AND C.date BETWEEN CURRENT_DATE - 18 MONTHS AND CURRENT_DATE - 6 MONTHS
GROUP BY C.customerNumber
HAVING COUNT(*) > 0
select c.customerNumber
from Customers c
join Orders o
on c.CustomerNumber = o.Customer
where c.customerNumber not in ($dealerNum)
group by
c.customerNumber
having count(case when o.date > current date - 6 months then 1 end) > 0
and count(case when o.date between current date - 18 months and
current_date - 6 months then 1 end) = 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句