2014-06-23 8 views
1

j'ai ce tableauafficher des lignes en double dans l'accès

MEN

id | Qty | Place 
======================== 
111 | 10  | 55 
111 | 20  | 66 
111 | 10  | 77 
222 | 40  | 11 
333 | 50  | 11 
111 | 10  | 22 
222 | 44  | 33 
222 | 40  | 44 
333 | 15  | 55 

que je dois montrer tous les enregistrements id = id et Qté = Quantité comme ceci:

id | Qty | Place 
===================== 
111 | 10 | 55 
111 | 10 | 77 
111 | 10 | 22 
222 | 40 | 11 
222 | 40 | 44 

Répondre

2

Essayez ceci

SELECT T.ID,T.Qty 
FROM Table1 T 
GROUP BY T.ID,T.Qty 
HAVING (((Count(*))>1)); 

utilisation ci-dessous requête pour obtenir ensemble des détails de l'enregistrement:

SELECT R.Id, R.Qty, R.Place 
FROM Table1 R INNER JOIN 
(
SELECT T.Id, T.Qty 
FROM Table1 T 
GROUP BY T.Id, T.Qty 
HAVING (((Count(*))>1)) 
)AS JR ON R.Qty = JR.Qty AND R.Id = JR.Id 
2

Vous pouvez faire quelque chose comme ceci:

SELECT MEN.Id, MEN.Qty, MEN.Place 
FROM MEN INNER JOIN 
(SELECT MEN.Id, MEN.Qty 
FROM MEN 
GROUP BY MEN.Id, MEN.Qty 
HAVING (((Count(*))>1))) AS a 
ON (MEN.Qty = a.Qty) AND (MEN.Id = a.Id) 
ORDER BY MEN.Id, MEN.Qty; 

Créer la requête interne pour trouver où il y a plus d'un cas de Id puis joignez-le à la table d'origine pour obtenir les valeurs de place.