We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

SQL DISTINCT shows 2 same results

jtuttle99
jtuttle99 asked
on
Medium Priority
267 Views
Last Modified: 2012-05-07
This SQL syntax shows 2 same results.
DISTINCT is not working.
What am I missing?

Thank you
SELECT DISTINCT C.CustomerID, C.FirstName, C.LastName,  C.Email, C.Password, C.Address, C.City, C.State, C.Country, C.Post, C.Phone, C.BestTimes, C.CreateDate, C.LastLogin, C.ContactPref, C.EstGiven, C.JobFini, C.Deposit, C.ActiveCust, C.CustNotes, B1.ImageID AS LatestImageID, B2.Comment AS LatestComment, B2.Poster, B2.PostDate AS Postdate FROM Customers AS C LEFT OUTER JOIN Employees AS E ON C.empID = E.empID LEFT OUTER JOIN (SELECT CustomerID, MAX(PostDate) AS MaxDate FROM blog WHERE (ImageID <> '') GROUP BY CustomerID) AS M1 ON M1.CustomerID = C.CustomerID LEFT OUTER JOIN blog AS B1 ON B1.CustomerID = M1.CustomerID AND B1.PostDate = M1.MaxDate LEFT OUTER JOIN (SELECT CustomerID, MAX(PostDate) AS MaxDate FROM blog AS blog_1 WHERE (Comment <> '') GROUP BY CustomerID) AS M2 ON M2.CustomerID = C.CustomerID LEFT OUTER JOIN blog AS B2 ON B2.CustomerID = M2.CustomerID AND B2.PostDate = M2.MaxDate WHERE (E.Username = @username) AND (C.ActiveCust = 1) ORDER BY C.LastLogin DESC

Open in new window

Comment
Watch Question

Kevin CrossChief Technology Officer
CERTIFIED EXPERT
Most Valuable Expert 2011

Commented:
Are they exactly the same or is there one column that is different?

What is your SQL platform and version?

Commented:
When you say 2 same results, do you mean all the columns listed in the sql are repeating or most of them but there are couple that have different value.
When you do a select distinct like above that means all the values in all the columns have to same in order to be grouped into one distinct record.
P.
Kevin CrossChief Technology Officer
CERTIFIED EXPERT
Most Valuable Expert 2011

Commented:
In the interim, you can try it like this:
SELECT C.CustomerID, C.FirstName, C.LastName,  C.Email, C.Password
, C.Address, C.City, C.State, C.Country, C.Post
, C.Phone, C.BestTimes, C.CreateDate, C.LastLogin, C.ContactPref
, C.EstGiven, C.JobFini, C.Deposit, C.ActiveCust, C.CustNotes
, B1.ImageID AS LatestImageID, B2.Comment AS LatestComment, B2.Poster, B2.PostDate AS Postdate 
FROM Customers AS C 
LEFT OUTER JOIN Employees AS E ON C.empID = E.empID 
LEFT OUTER JOIN ((SELECT CustomerID, MAX(PostDate) AS MaxDate FROM blog WHERE (ImageID <> '') GROUP BY CustomerID) AS M1
	INNER JOIN blog AS B1 ON B1.CustomerID = M1.CustomerID AND B1.PostDate = M1.MaxDate) ON M1.CustomerID = C.CustomerID 
LEFT OUTER JOIN ((SELECT CustomerID, MAX(PostDate) AS MaxDate FROM blog AS blog_1 WHERE (Comment <> '') GROUP BY CustomerID) AS M2 
	INNER JOIN blog AS B2 ON B2.CustomerID = M2.CustomerID AND B2.PostDate = M2.MaxDate) ON M2.CustomerID = C.CustomerID 
WHERE (E.Username = @username) AND (C.ActiveCust = 1) 
ORDER BY C.LastLogin DESC

Open in new window

Author

Commented:
pssandhu:
Yes, some has duplicate results and some doesn't.
The duplucate results are exactly same results.
so looks like this

john
john
mark
brad
james
james
bob



mwvisa1:
I tried your code, but I got exactly same results (some duplicate displays)

Thank you

Author

Commented:
oh, I'm using SQL server 2008 express edition.
Kevin CrossChief Technology Officer
CERTIFIED EXPERT
Most Valuable Expert 2011

Commented:
Can you display the full row of two of the duplicate records, please.  That will help construct query to filter them out.  One thought with SQL Server 2008 is to use ROW_NUMBER() function with an OVER analytical statement; however, would have to know the exact columns that make the row unique/duplicate.

Author

Commented:
Here is the screen shot. It's pretty long list, so I cut it half
screenshot.14.jpg
Chief Technology Officer
CERTIFIED EXPERT
Most Valuable Expert 2011
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
Yes, it did work if I get rid of LastLogin.
Somehow, I got duplicate data in Customer table.
I have no idea when this happened, but I erased the table and imported again.

Thank you very much for your help!!!
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.