2014-12-16 4 views
0

QueryКак найти дубликат записи SQL

SELECT AV.ItemID as ItemIDe, AV.uid, ui.Count, U.Name, u.Surname, 
u.UID as UserID, av.Value, av1.Value, AV2.Value 
FROM AttribValues as AV 
full join AttribValues as AV2 on AV2.AttribID = 3 AND AV2.Value = '12' 
           AND AV2.ItemID = AV.ItemID 
full join AttribValues as AV1 on AV1.AttribID = 2 AND AV1.Value = 'zielony' 
           AND AV1.ItemID = AV.ItemID 
join UsersItems as UI on Ui.UID = AV.ItemID 
join Users as U on u.UID = ui.UserID 
WHERE ((AV.AttribID = 1 AND AV.Value = '517750069') OR (AV1.Value IS NOT NULL 
OR AV2.Value IS NOT NULL)) AND DateEnd > GETDATE() 

и дублированию записей в Av.ItemID

+1

Можете ли вы предоставить образец данных и желанной Результаты? Кроме того, я предполагаю, что это для SQL Server. – sgeddes

ответ

0

Это будет выглядеть так:

SELECT COUNT(1), AV.ItemID as ItemIDe, AV.uid, ui.Count, U.Name, u.Surname, u.UID as UserID, av.Value, av1.Value, AV2.Value 

FROM AttribValues as AV 
full join AttribValues as AV2 on AV2.AttribID = 3 AND AV2.Value = '12' AND AV2.ItemID = AV.ItemID 
full join AttribValues as AV1 on AV1.AttribID = 2 AND AV1.Value = 'zielony' AND AV1.ItemID = AV.ItemID 

join UsersItems as UI on Ui.UID = AV.ItemID 
join Users as U on u.UID = ui.UserID 

WHERE ((AV.AttribID = 1 AND AV.Value = '517750069') OR (AV1.Value IS NOT NULL OR AV2.Value IS NOT NULL)) AND DateEnd > GETDATE() 

GROUP BY AV.ItemID, AV.uid, ui.Count, U.Name, u.Surname, u.UID, av.Value, av1.Value, AV2.Value 

HAVING COUNT(1) > 1 
Смежные вопросы