mysql 在计费软件中比较产品状态

bkhjykvo  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(55)

为了简化我们的工作,我为我们的计费系统编写了模块,使我们能够在设置免费数据库/DNS记录时轻松创建“产品”,并在我们的计费软件中跟踪它们。不幸的是,这些是独立的条目,而不是我们包含这些服务的付费产品的子条目。
我现在已经意识到,我们有数以千计的数据库/DNS记录仍然设置在客户的,因为取消了他们的其他付费服务。
我需要查询每个客户端的计费项目的完整列表,如果他们有A)数据库B)DNS记录C)两者,没有其他活动的服务,终止它们。
我的问题只是从逻辑上讲,我怎么能做到这一点?每个产品都有一个唯一的ID,但我只是画一个空白,如何检查这些条件。

hgtggwj0

hgtggwj01#

你想要这样的东西吗?

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

相关问题