Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 is there a way to...

Author  Topic 

republic
Starting Member

1 Post

Posted - 2006-03-14 : 13:48:23
I'm working on a project in which I need to verify that there aren't duplicate emails assigned to a salesagent. Is there a way that i can search the entire table, compare it to the sales person and display any duplicate emails that dont match the sales person?

i'll include an example


emailfrom emailto
----------------------------- ------------------------------
<salesperson4@ mydomain.com > emailcontact234@somedomain.com
<salesperson4@mydomain.com> emailcontact989@somedomain.com
<salesperson8@ mydomain.com > emailcontact111@somedomain.com
<salesperson8@ mydomain.com > emailcontact555@somedomain.com
<salesperson2@mydomain.com> emailcontact33@somedomain.com
<salesperson5@mydomain.com> emailcontact888@somedomain.com
<salesperson2@mydomain.com> emailcontact890@somedomain.com
<salesperson1@mydomain.com> emailcontact890@somedomain.com
<salesperson1@mydomain.com> emailcontact777@somedomain.com
<salesperson1@mydomain.com> emailcontact22@somedomain.com
<salesperson1@mydomain.com> emailcontact1@somedomain.com


In the above example emailcontact890@somedomain.com has been contacted by salesperson2 and salesperson1. I'm wanting a way to search all the emailto field and compare them to the emailfrom field, so that I can see the duplicate emails.

hope that's not confusing...any advice is appreciated.

JoeNak
Constraint Violating Yak Guru

292 Posts

Posted - 2006-03-14 : 14:01:37
I'm not quite sure what you're looking for...

Duplicate "emailto"s?

SELECT emailto
FROM tablename
GROUP BY emailto
HAVING COUNT(*) > 1

Or which sales people have contacted the same email?

SELECT emailfrom, emailto
FROM tablename
WHERE emailto IN
(SELECT emailto
FROM tablename
GROUP BY emailto
HAVING COUNT(*) > 1)
ORDER BY emailto
Go to Top of Page

TG
Master Smack Fu Yak Hacker

6065 Posts

Posted - 2006-03-14 : 14:05:24
I have something very similar (if not the same)

set nocount on
create table #myTable (emailfrom varchar(50), emailto varchar(50))
go

insert #myTable
select '<salesperson4@ mydomain.com>', 'emailcontact234@somedomain.com' union all
select '<salesperson4@mydomain.com>', 'emailcontact989@somedomain.com' union all
select '<salesperson8@mydomain.com>', 'emailcontact111@somedomain.com' union all
select '<salesperson8@mydomain.com>', 'emailcontact555@somedomain.com' union all
select '<salesperson2@mydomain.com>', 'emailcontact33@somedomain.com' union all
select '<salesperson5@mydomain.com>', 'emailcontact888@somedomain.com' union all
select '<salesperson2@mydomain.com>', 'emailcontact890@somedomain.com' union all
select '<salesperson1@mydomain.com>', 'emailcontact890@somedomain.com' union all
select '<salesperson1@mydomain.com>', 'emailcontact777@somedomain.com' union all
select '<salesperson1@mydomain.com>', 'emailcontact22@somedomain.com' union all
select '<salesperson1@mydomain.com>', 'emailcontact1@somedomain.com'


print '--all emailTo values that have been contacted my multiple salespersons'
select emailTo
from #myTable
group by emailTo
having count(distinct emailFrom) > 1


print '--the sales people that contacted those emails'
select *
from #myTable
where emailto in
(
select emailTo
from #myTable
group by emailTo
having count(distinct emailFrom) > 1
)

go

drop table #myTable

output:

--all emailTo values that have been contacted my multiple salespersons
emailTo
--------------------------------------------------
emailcontact890@somedomain.com

--the sales people that contacted those emails
emailfrom emailto
-------------------------------------------------- --------------------------------------------------
<salesperson2@mydomain.com> emailcontact890@somedomain.com
<salesperson1@mydomain.com> emailcontact890@somedomain.com


Be One with the Optimizer
TG
Go to Top of Page
   

- Advertisement -