我正在尝试建立一个查询,该查询将返回表中的所有非重复(唯一)记录。该查询将需要使用多个字段来确定记录是否重复。
例如,如果一个表具有以下字段;PKID,ClientID,名称,AcctNo,OrderDate,Charge,我想使用AcctNo,OrderDate和Charge字段来查找唯一记录。
桌子
PKID-----ClientID-----Name-----AcctNo-----OrderDate-----Charge 1 JX100 John 12345 9/9/2010 $100.00 2 JX220 Mark 55567 9/9/2010 $23.00 3 JX690 Matt 89899 9/9/2010 $218.00 4 JX100 John 12345 9/9/2010 $100.00
查询的结果将需要是:
PKID-----ClientID-----Name-----AcctNo-----OrderDate-----Charge 2 JX220 Mark 55567 9/9/2010 $23.00 3 JX690 Matt 89899 9/9/2010 $218.00
我尝试使用SELECT DISTINCT,但这不起作用,因为它在结果中保留了重复记录之一。我也尝试过使用HAVING COUNT =1,但这会返回所有记录。
谢谢您的帮助。
HAVING COUNT(*) = 1如果您仅在GROUPBY用于查找唯一记录的字段中包含这些字段,则它将起作用。(即不是PKID,但是您可以使用MAX或MIN返回该值,因为结果集中每个组只有一条记录。)
HAVING COUNT(*) = 1
GROUPBY
PKID
MAX
MIN