如何选择在SQL中同时具有“S”和“P”属性的不同客户?

时间:2017-05-22 16:52:40

标签: sql sql-server relational-division

在SQL表中,我有两个字段:CustomerID和TransactionType。 CustomerID是一个唯一的编号,可以在每次交易时重复。每笔交易都是'S'或'P'。

enter image description here

我想在SQL中选择具有'S'和'P'的不同customerID。因此,在上表中,我的预期返回值是100和102.我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用聚合:

select customerid
from your_table
where transactionType in ('S', 'P')
group by customerid
having count(distinct transactionType) = 2;

如果事务类型只能是'S'或'P'(甚至不是null),则可能会丢失where子句。