1
我有一个包含客户端信息的表。该表格保存每个客户端的许可证类型信息。按客户端查询的SQL组
我想查询该表只发现谁拥有牌照类型为2或1,没有别的客户的记录。客户可以拥有许可证类型1,2和3,这些客户端不应该符合结果集。
感谢您对此的任何帮助。
我有一个包含客户端信息的表。该表格保存每个客户端的许可证类型信息。按客户端查询的SQL组
我想查询该表只发现谁拥有牌照类型为2或1,没有别的客户的记录。客户可以拥有许可证类型1,2和3,这些客户端不应该符合结果集。
感谢您对此的任何帮助。
您可以group by
和having
做到这一点:
select clientid
from t
group by clientid
having sum(case when licensetype not in (1, 2) then 1 else 0 end) = 0;
的having
条款计数不可接受的许可证类型为每个客户端的数量。 = 0
说没有。
编辑:
也许这真的是你想要什么:
having max(licensetype) = 2 and
min(licensetype) >= 1 -- not clear if this is necessary
感谢您的答复。该查询确实给出了许可证类型1或2的结果。实际上有5种许可证类型(1.2.3.4.5)。我试着编辑查询来返回客户端只有1和2的结果。任何建议。 – Ravinesh
@Ravinesh。 。 。这个查询应该返回只有*许可证类型1和2的客户端,而且没有其他的(如果可能的话,也可能是'NULL')。 –
是的,我试过查询,但只有许可证类型1的客户也出现在列表中。我担心许可证类型2.对于客户端来说,在结果集中有资格:许可证类型不能大于2,它可以小于2,但必须包含2。 – Ravinesh