Comment trouver des enregistrements en double dans SQL?
Je suis en train de développer une requête pour insérer des enregistrements uniques, mais je suis la réception de SQL Server Clé Primaire d'erreur pour essayer d'insérer des enregistrements en double. J'ai pu insérer certaines valeurs avec cette requête, mais pas pour ce dossier (score_14).
Alors maintenant, je suis en train d'essayer de trouver de l'enregistrement en double avec la requête suivante. Le défi est que mon PK est basé sur 3 colonnes: StudentID, MeasureDate, et measureid font tous à partir d'une autre table ne sont pas mentionnés ci-dessous.
Mais cela ne montre-moi compter--au lieu de cela, je veux juste retour des documents, avec count > 1. Comment dois-je faire?
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
OriginalL'auteur salvationishere | 2010-08-20
Vous devez vous connecter pour publier un commentaire.
Beth est correct - voici mon re-écriture de votre requête:
Précédemment:
Après avoir relu la question - on ne pouvait pas appliquer la contrainte de clé primaire si il y a des données en double dans la place. Vous devez corriger les données avant que vous pourriez... donc la question est, vous êtes tenté d'insérer des données en double, pas qu'elle existe.
Merci beaucoup pour votre aide! Il semble que le problème a été le PK.
OriginalL'auteur OMG Ponies
vous avez besoin de prendre A. score_14 de votre clause group by si vous voulez compter qu'il
OriginalL'auteur Beth