我有一个系统,它根据唯一键和主键在表中创建记录。每次访问都分配给客户的唯一密钥,并且应该为每次访问创建主键。但是,在某些情况下,系统会为同一次访问创建多个主键。我将如何找到发生这种情况的客户?
以下是应重新创建问题的数据示例。
RecordNum ClientNum VisitDate
---------------------------------
12345 B1000 8/15/2015
12345 B1001 8/20/2015
12345 B1002 8/20/2015
13456 C1000 9/23/2014
13456 C1001 9/24/2015
13456 C1002 10/2/2015
13456 C1003 10/2/2015
13456 C1004 10/2/2015
15165 D1000 11/1/2015
15165 D1001 11/2/2015
15165 D1002 11/3/2015
15165 D1003 11/4/2015
15165 D1004 11/5/2015
15165 D1005 11/6/2015
显然我也可以使用一些关于如何格式化数据集的建议,我提前道歉。
答案 0 :(得分:1)
我猜你希望RecordNum
基于ClientNum
和VisitDate
是唯一的。您可以使用以下内容找到异常:
select recordnum
from t
group by recordnum
having count(distinct clientnum) > 0 or count(distinct visitdate < 0);
答案 1 :(得分:-1)
SELECT DISTINCT ClientNum, VisitDate
FROM YourTable
GROUP BY (ClientNum + CAST(VisitDate as varchar(20)))
HAVING COUNT (ClientNum + CAST(VisitDate as varchar(20))) > 1