0

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

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

我需要查询每个客户的完整计费项目列表,如果他们有 A) 数据库 B) DNS 记录 C) 两者都没有其他活动服务,请终止它们。

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

4

1 回答 1

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'产品的客户。

于 2013-07-11T01:32:42.840 回答