联接2个表以找出客户有多少未解决的事件

时间:2018-11-05 11:50:44

标签: sql-server-2008 join duplicates

我正在做的工作是突出显示内部系统中许多重复的帐户。为了识别重复项,我创建了以下脚本:

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

事件的状态不能为ResolvedClosed

“事件”表中的CustomerDisplayName字段与“客户”表中的FullName相同。不知道脚本中是否需要这样做。

在此方面的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据您的描述,并假设重复的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'