/ / Zidentyfikuj zduplikowane wartości podczas używania JOIN w programie Microsoft Access - sql, ms-access

Zidentyfikuj zduplikowane wartości podczas używania JOIN w programie Microsoft Access - sql, ms-access

Mam 2 tabele, które przechowują wartości dla klientów. Pierwsza tabela zawiera nazwy klienta, a druga zawiera informacje dotyczące klienta, takie jak transakcje.

Wygląda na pierwszy stół

CustomerID    Name
1             Joe
2             Jane

Druga tabela wygląda

TransactID    CustomerID    Reference
1             1             REF123
2             2             REF123
3             1             REF321

Muszę umieć zidentyfikować wszystkie duplikaty w kolumnie referencyjnej, a także klienta, do którego należy. Joe, Jane

Kod, który mam w tej chwili wygląda

SELECT o.name, COUNT(p.reference) as RefCount
FROM (t_cust as o
INNER JOIN t_custprop as p
ON o.customerid = p.customerid)
GROUP BY o.name, p.reference
HAVING (COUNT(p.reference)>1)
ORDER BY o.name ASC

Ponieważ nie znam możliwych wartości, które mogą być duplikowane, powyższy kod nie zwraca nazwy klienta i odniesienia, które może być duplikatem.

Odpowiedzi:

1 dla odpowiedzi № 1

Grupowanie według pozycji, którą zliczymy, zawsze spowoduje, że licznik będzie wynosił 1, co eliminuje klauzula mająca na celu:

SELECT o.name, p.reference
FROM t_cust o
INNER JOIN t_custprop p ON o.customerid = p.customerid
WHERE p.reference IN (
SELECT p2.reference
FROM t_custprop p2
GROUP BY p2.reference
HAVING COUNT(p2.customerid) > 1
)
ORDER BY o.name ASC