提问人:Ana 提问时间:11/8/2023 最后编辑:SelVaziAna 更新时间:11/8/2023 访问量:28
如何选择关系只有一个条件的客户
how to select customer having relations of only one condition
问:
我有dbo。客户和 dbo.CustomerRelations 表。
dbo。客户:
CustomerId、CustomerType
dbo。客户关系:
MainCustomerId、RelatedCustomerId
例如,主客户有许多不同类型的 RelatedCustomers:
MainCustomerId | 相关客户 Id | 相关客户类型 |
---|---|---|
55 | 111 | 1 |
55 | 112 | 1 |
55 | 113 | 4 |
55 | 114 | 3 |
55 | 115 | 3 |
55 | 116 | 1 |
66 | 661 | 1 |
66 | 662 | 1 |
77 | 57秒 | 1 |
77 | 772 | 3 |
88 | 881 | 1 |
88 | 882 | 1 |
88 | 883 | 1 |
因此,我想获得主要客户,这些客户仅与客户相关,客户类型例如 1。根据我上面给出的示例,我想编写一个查询,它将为我提供客户: 88 和 66,他们只有相关客户,他们有类型 1。 我不想获得其他主要客户,这些客户具有不同客户类型(包括类型 1)的关系,但我只想获得主要客户,他们只有类型 1 的关系。
谢谢。
答:
0赞
SelVazi
11/8/2023
#1
SELECT MainCustomerId
FROM mytable
GROUP BY MainCustomerId
HAVING COUNT(CASE WHEN RelatedCustomerType = 1 THEN 1 END) >= 1
and COUNT(CASE WHEN RelatedCustomerType <> 1 THEN 1 END) = 0
我们需要选择验证两个条件的客户:
- 拥有类型 1 的记录:
COUNT(CASE WHEN RelatedCustomerType = 1 THEN 1 END) >= 1
- 不要有除 1 不同的任何其他类型:
COUNT(CASE WHEN RelatedCustomerType <> 1 THEN 1 END) = 0
评论
1赞
Ana
11/9/2023
非常感谢,这真的很有帮助。我在sql查询结果中得到了我想要的东西。
评论