【发布时间】:2010-08-21 05:51:10
【问题描述】:
我正在尝试开发一个查询来插入唯一记录,但由于尝试插入重复记录而收到 SQL Server 主键错误。我能够使用此查询插入一些值,但不能插入此记录(score_14)。
所以现在我正在尝试使用以下查询查找重复记录。挑战在于我的 PK 基于 3 列:StudentID、MeasureDate 和 MeasureID——全部来自下面未提及的不同表。
但这只会显示计数——而不是我只想返回计数 > 1 的记录。我该怎么做?
select count(a.score_14) as score_count, A.studentid, A.measuredate, B.measurename+' ' +B.LabelName
from [J5C_Measures_Sys] A
join [J5C_ListBoxMeasures_Sys] B on A.MeasureID = B.MeasureID
join sysobjects so on so.name = 'J5C_Measures_Sys'
join syscolumns sc on so.id = sc.id
join [J5C_MeasureNamesV2_Sys] v on v.Score_field_id = sc.name
where so.type = 'u' and sc.name = 'score_14' and a.score_14 is not null
AND A.STUDENTID IS NOT NULL AND A.MEASUREDATE IS NOT NULL AND B.MEASURENAME IS NOT NULL
--and count(a.score_14)>1
group by a.studentid, a.measuredate, B.measurename, B.LabelName, A.score_14
having count(a.score_14) > 1
【问题讨论】:
标签: sql sql-server tsql sql-server-2008 duplicates