我有2个表,可以为客户提供价值。第一个表包含客户的名称,第二个表包含与客户相关的信息,如交易。
第一个表格似乎是
CustomerID Name
1 Joe
2 Jane
第二张表格似乎是
TransactID CustomerID Reference
1 1 REF123
2 2 REF123
3 1 REF321
我需要能够识别参考列中的所有重复项以及它所属的客户,例如乔,简
我目前的代码看起来像是
SELECT o.name, COUNT(p.reference) as RefCount
FROM (t_cust as o
INNER JOIN t_custprop as p
ON o.customerid = p.customerid)
GROUP BY o.name, p.reference
HAVING (COUNT(p.reference)>1)
ORDER BY o.name ASC
由于我不知道可能重复的可能值,上面的代码不会返回客户的名称和可能重复的引用。
答案 0 :(得分:1)
按照您计算的项目进行分组将始终导致计数为1,这可以通过您的having子句消除。这应该是诀窍:
SELECT o.name, p.reference
FROM t_cust o
INNER JOIN t_custprop p ON o.customerid = p.customerid
WHERE p.reference IN (
SELECT p2.reference
FROM t_custprop p2
GROUP BY p2.reference
HAVING COUNT(p2.customerid) > 1
)
ORDER BY o.name ASC