比较结算软件中的产品状态

时间:2013-07-11 01:18:03

标签: php mysql module records whmcs

为了简化我们的工作生活,我为我们的计费系统编写了模块,允许我们在设置免费的数据库/ DNS记录时轻松创建“产品”,并在我们的计费软件中跟踪它们。不幸的是,这些是独立条目,而不是我们将这些服务包括在内的付费产品的子条目。

我现在已经意识到,我们仍然设置了数千个数据库/ DNS记录,客户已经取消了其他付费服务。

我需要查询每个客户完整的结算项目清单,如果他们有A)数据库B)DNS记录C)两者都没有,也没有其他有效服务,终止它们。

我的问题只是从逻辑上讲,我该怎么做?每个产品都有一个唯一的ID,但我只想弄清楚如何检查这些条件。

1 个答案:

答案 0 :(得分:0)

你想要这样的东西吗?

select customerId
from customerproducts cp
group by customerId
having sum(case when product not in ('Database', 'DNS Record') then 1 else 0 end) = 0 and
       sum(case when product in ('Database', 'DNS Record' then 1 else 0 end) > 0

这会返回仅包含'Database''DNS Record'个产品的所有客户。