Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chriss Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Duplicate Rows

Status
Not open for further replies.

murphyhg

Technical User
Mar 1, 2006
98
US
Any thoughts on how I can clean this up a little and not have duplicate rows?

SELECT
DISTINCT Articles.Title AS Title, Articles.ByPassURL, Articles.LocName AS ParentName,
Articles.description, ARTICLEMATRIX.TIER_ID, ARTICLEMATRIX.TIER,
(select art_name from articletype where articletype.id = ARTICLEMATRIX.ART_TYPES) AS ART_TYPES,
(select url from dbo.getContentURL3(Articles.ID, Articles.ID, Articles.ByPassURL)) AS URL,
(select url from dbo.getContentURL2(Articles.ID, Articles.ID)) AS ID,
ARTICLEMATRIX.ART_ID
FROM Articles INNER JOIN
ARTICLEMATRIX ON Articles.ID = ARTICLEMATRIX.ART_ID
WHERE (Left(Ltrim(Articles.ByPassURL),4) = 'http' OR (Articles.ByPassURL IS NULL) OR Right(RTrim(Articles.ByPassURL), 3) = 'pdf' OR Right(RTrim(Articles.ByPassURL), 3) = 'doc')
AND (ARTICLEMATRIX.TIER IN (3) ) AND (ARTICLEMATRIX.TIER_ID IN (select t3id from tier3 where t2idfk = 5))
AND (Articles.PUBDATE <= { fn NOW() }) AND (Articles.EXPDATE >= { fn NOW() }) AND (Articles.artstatus = 1)
AND (ARTICLEMATRIX.ART_TYPES IN (1,2,4,5,6))
ORDER BY ART_TYPES

 
not sure what "clean this up a little" might mean other than some sensible indenting and removing unnecessary parentheses...
Code:
SELECT DISTINCT 
       Articles.Title
     , Articles.ByPassURL
     , Articles.LocName AS ParentName
     , Articles.description
     , ARTICLEMATRIX.TIER_ID
     , ARTICLEMATRIX.TIER
     , ( SELECT art_name 
           FROM articletype 
          WHERE articletype.id = ARTICLEMATRIX.ART_TYPES ) AS ART_TYPES
     , ( SELECT url 
           FROM dbo.getContentURL3( Articles.ID
                                  , Articles.ID
                                  , Articles.ByPassURL) ) AS URL
     , ( SELECT url 
           FROM dbo.getContentURL2( Articles.ID
                                  , Articles.ID) ) AS ID
     , ARTICLEMATRIX.ART_ID  
  FROM Articles 
INNER 
  JOIN ARTICLEMATRIX 
    ON ARTICLEMATRIX.ART_ID = Articles.ID 
 WHERE (
       LEFT(LTRIM(COALESCE(Articles.ByPassURL,'http'),4) = 'http' 
    OR RIGHT(RTRIM(Articles.ByPassURL),3) IN ( 'pdf','doc' )
       )  
   AND ARTICLEMATRIX.TIER = 3
   AND ARTICLEMATRIX.TIER_ID IN 
           ( SELECT t3id 
               FROM tier3 
              WHERE t2idfk = 5)
   AND Articles.PUBDATE <= { fn NOW() }  
   AND Articles.EXPDATE >= { fn NOW() }  
   AND Articles.artstatus = 1 
   AND ARTICLEMATRIX.ART_TYPES IN (1,2,4,5,6) 
ORDER 
    BY ART_TYPES
as for duplicate rows, you cannot possibly be getting duplicate rows, because you're using DISTINCT

r937.com | rudy.ca
Buy my new book Simply SQL from Amazon
 
Thanks for doing this. I have a question what does the Coalesce Function do for me?
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top