Присоединитесь к двум таблицам, чтобы узнать, сколько открытых инцидентов открыл клиент - PullRequest
0 голосов
/ 05 ноября 2018

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

select SAMAccountName, COUNT(*)
from dbo.customer
group by SAMAccountName  
having COUNT(*) > 1
order by SAMAccountName asc

duplicate accounts

Учетные записи NULL следует игнорировать, поскольку они связаны со сценариями PowerShell, используемыми в настоящее время.

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

select customerdisplayname, customeremail, status
from dbo.incident

Incident Table Fields

Статус инцидента НЕ МОЖЕТ быть Resolved или Closed.

Поле CustomerDisplayName в таблице инцидентов совпадает с FullName в таблице клиентов. Не уверен, понадобится ли это в сценарии.

Любая ваша помощь по этому вопросу будет принята с благодарностью.

1 Ответ

0 голосов
/ 05 ноября 2018

Исходя из вашего описания, и если предположить, что повторяющиеся значения SAMAccountName могут иметь различные значения fullname, то следующее представляется целесообразным:

select t.SAMAccountName, i.customerdisplayname, i.customeremail, i.status
from
(
    select SAMAccountName
    from dbo.customer
    group by SAMAccountName 
    having count(*) > 1
) t
inner join dbo.customer c on t.SAMAccountName = c.SAMAccountName
inner join dbo.incident i on c.fullname = i.customerdisplayname
where i.status <> 'Resolved' and i.status <> 'Closed'
...