Как написать запрос, который организует продавец, а затем найденные дубликаты? - PullRequest
0 голосов
/ 28 марта 2019

Я ищу дубликаты и хочу показать их торговцу.Я знаю, что для этого нужно самостоятельное соединение, но не могу получить правильный синтаксис.

В этом запросе отображаются элементы с дубликатами.

Select MerchId, CustId, Count(CustId) 
from Customers
Group by MerchId, CustId
Having Count(CustId)> 1

И этот запрос показывает мне все ошибки для конкретного продавца.

SELECT  c.MerchId, c.CustId 
FROM Customers c
WHERE CustId IN 
(SELECT c.CustId FROM Customers AS c
WHERE c.MerchId = @mid 
group by c.CustId having count(1) > 1)
and c.MerchId = @mid
order by CustId

Но то, что я хочу видеть, это информация, отображаемая как:

MerchId, CustId, Address, Phone     
1        01     
1        01     
1        02     
1        02     
1        03     
1        03     
2        01     
2        01     
2        02     
2        02     

, предполагают n торговцев с n покупателями.Заранее спасибо

1 Ответ

0 голосов
/ 28 марта 2019

Вы можете присоединить свой запрос к таблице:

select c.merchid, c.custid, c.address, c.phone 
from customers c inner join (
  select merchid, custid 
  from customers
  group by merchId, custId
  having count(custid)> 1
) g on g.merchid = c.merchid and g.custid = c.custid

или путем явного подсчета для каждой строки (менее эффективно, но проще для чтения):

select c.merchid, c.custid, c.address, c.phone 
from customers c
where (
  select count(*) from customers
  where merchid = c.merchid and custid = c.custid
) > 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...