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. 
    
        
            
                
                    
                        
                            
                                | Author | 
                                
                                 Topic  | 
                             
                            
                                    | 
                                         bholmstrom 
                                        Yak Posting Veteran 
                                         
                                        
                                        76 Posts  | 
                                        
                                        
                                            
                                            
                                             Posted - 2014-07-30 : 09:54:02
                                            
  | 
                                             
                                            
                                            | Good morning, I have a complex select statement that is retreiving records from a sql crm database. The problem is that I am getting multiple records back because the member may have several contact entries, with different areas of the table filled in correctly and others not filled in.Lets see if I can explain a little better:Fields:Account  Email                             Industry                  ContactIndustry            Mailings1        paul.woodworth@suntrust.com       Affordable Housing            NULL                   TaxCredit1        paul.woodworth@suntrust.com       NULL                          Affordable Housing     NULL        2        paul.woodworth@suntrust.com       Affordable Housing            NULL                   Affordable Housing     2        paul.woodworth@suntrust.com       NULL                          NULL                   Affordable Housing     So if I do a select something like this I get 4 rcordsselect email , industry, contact,industry,mailings from x tableinner join y table on y.accountid = x.accountidwhere y.industry like '%Affordable%       or      x.contactindustry like '%Affordable%       or      x.mailings like '%Affordable% What I need to return is one record that would combine the above 4 records into one.In other words the record would need to be create with the combination of the "good" selects.Record   Email                             Industry                  ContactIndustry       Mailings1        paul.woodworth@suntrust.com       Affordable Housing        Affordable Housing    Affordable HousingSorry for the long explanation, I hope this is possible. I'm stumped.Bryan Holmstrom | 
                                             
                                         
                                     | 
                             
       
                            
                       
                          
                            
                                    | 
                                     djj55 
                                    Constraint Violating Yak Guru 
                                     
                                    
                                    352 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2014-07-30 : 12:39:27
                                          
  | 
                                         
                                        
                                          | Create a temporary table then pull the unique email then populate the remainingdjj  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     bholmstrom 
                                    Yak Posting Veteran 
                                     
                                    
                                    76 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2014-07-30 : 13:01:00
                                          
  | 
                                         
                                        
                                          | I am using a temp table, how do I select the unique emails, and then populate the table with the remaing fields with the correct data?Here is the entire script...kind of longDELETE FROM [Lyris_Temp].[dbo].[Lyris_Combined]      WHERE [Lyris_Combined].[Con_SlxSingleMailing] = 'AffHousing'			AND			[Lyris_Combined].[Comment_] = 'Dynamics Record' GOIF OBJECT_ID('TmpTable') IS NOT NULL DROP TABLE TmpTable/* Create Temporary Table Hold the data */SET NOCOUNT ON;CREATE TABLE TmpTable (EmailAddr_ varchar(200),Comment_ varchar(50),UserId_ varchar(100),Fullname_ varchar(100),ReadsHtml_ varchar (1),UserNameLC_ varchar(100),Con_First_Name varchar(250),Con_Last_Name varchar(250),Con_Title varchar(250),Con_Addr_city varchar(250),Con_Addr_State varchar(250),Con_Status varchar(250),Act_Account_Name varchar(250),Act_Type varchar(200),Act_Relationship varchar(100),Act_State varchar(250),Act_Industry varchar(250),Act_GroupNum varchar(100),Act_Account_Manager varchar (50),Act_City varchar (250),Act_Subsegment varchar(100),Act_IndustryPractice varchar(100),Con_SlxSingleMailing varchar(20),TmpContactID varchar(100),Con_Mailings varchar(MAX))insert into TmpTableselect DISTINCT left(lower(Contact.EmailAddress1),200) as EmailAddr_,'Dynamics Record' as Comment_,Contact.CONTACTID as UserID_, left(ltrim(rtrim(contact.FirstName))+' '+ltrim(rtrim(Contact.LastName)),100) as FullName,'T' as ReadsHtml_,Substring(Contact.EmailAddress1,0,charindex( '@', Contact.EmailAddress1,0)) as UserNameLC_, -- sysdba.contactleft(ltrim(rtrim(Contact.FIRSTNAME)),250) as Con_First_Name,left(ltrim(rtrim(Contact.LASTNAME)),250)as Con_Last_Name, left(contact.Jobtitle,250) as Con_Title,left(ContactAddress.CITY,250) as Con_Addr_City, 							left(ContactAddress.stateorprovince,250) as Con_Addr_State, 			Convert(VarChar(250),ContactExt.CPDC_ContactStatus, ISNULL(ContactExt.CPDC_ContactStatus,0)) as Con_Status, 	left(Account.Name,250) as Act_Account_Name, CompanyType.Value as Act_Type, -- CRM FieldsCASE 	WHEN AccountExt.cpdc_type_client			= 1 Then 'Client'	WHEN AccountExt.cpdc_type_prospect			= 1 Then 'Prospect'	WHEN AccountExt.cpdc_coi					= 1 Then 'COI'	WHEN AccountExt.rg_vendor					= 1 Then 'Vendor' Else 'Other' End as 'Act_Relationship',left(CustomerAddress.stateorprovince,250) as Act_State,	IndustryName.Value AS Act_Industry,left(account.accountnumber,250) as Act_GroupNum,SystemUser.FullName as Act_Account_Manager,CustomerAddress.city as Act_City, 	IndustrySegName.Value as Act_Subsegment,	-- This is a repeat because Dynamics has 2 industry areas -- Contact Practice Area and Possibly Company Practice AreaCASE	WHEN CPB.Rg_Name IS NOT NULL and pb.rg_name IS NULL then left(CPB.Rg_Name,100) 	WHEN CPB.Rg_Name IS NOT NULL and pb.rg_name IS NOT NULL and pb.rg_name <> CPB.Rg_Name then left(CPB.Rg_Name+'; '+PB.RG_NAME,100)  	WHEN CPB.Rg_Name IS NULL and pb.rg_name IS NOT NULL then left(PB.RG_NAME,100) 	ELSE left(CPB.Rg_Name,100)END as Act_IndustryPractice,-- CPB.Rg_Name AS Act_IndustryPractice,'AffHousing'  as Con_SlxSingleMailing,Contact.ContactId,'Mailings' as Con_Mailings -- This gets filled in later---- Temp Fields--,Account.IndustryCode--,IndustryName.AttributeValue--,IndustryName.AttributeName--,pb.rg_nameFROM [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[ContactBase] as Contact	 LEFT JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[ContactExtensionBase]        as ContactExt on ContactExt.Contactid = Contact.Contactid	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[CustomerAddressBase]   as ContactAddress ON ContactAddress.ParentID = Contact.ContactID 	 LEFT JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[AccountBase]		           as Account ON Account.AccountID = Contact.AccountId	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[CustomerAddressBase]   as CustomerAddress ON CustomerAddress.ParentID = Account.AccountID	 LEFT JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[AccountExtensionBase]        as AccountExt on AccountExt.AccountId = Account.AccountId	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[SystemUserBase]        as SystemUser ON SystemUser.SystemUserID = Account.OwningUser	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[StringMap]			   as IndustryName on 	 Account.IndustryCode = IndustryName.AttributeValue and IndustryName.AttributeName='industrycode'	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[StringMap]			   as IndustrySegName on 	 AccountExt.cpdc_subsegment = IndustrySegName.AttributeValue and IndustrySegName.AttributeName='cpdc_subsegment'	 	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[StringMap]			   as ContactStatus on 	 Contact.StatusCode = ContactStatus.AttributeValue and ContactStatus.AttributeName='statuscode'	  	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[StringMap]			   as RemoveFromName on 	 AccountExt.cpdc_removedfrom = RemoveFromName.AttributeValue and RemoveFromName.AttributeName='cpdc_removedfrom'	 LEFT JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[StringMap]				   as CompanyType on 	 AccountExt.Rg_Classification = CompanyType.AttributeValue and CompanyType.AttributeName='rg_classification'-- Get Company Practice Areas	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[Rg_companypracticeareaExtensionBase] AS CPED	 on CPED.Rg_CompanyId = Account.AccountId	 -- Get Company Practice Area Name	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].Rg_practiceareaExtensionBase AS PB     on CPED.Rg_practiceareaId = PB.Rg_practiceareaId	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].Rg_practiceareaBase PAB	 on PAB.Rg_practiceareaId = PB.Rg_practiceareaId -- Get Contact Practice Areas	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[Rg_contactpracticeareaExtensionBase] AS ContPED	 on ContPED.Rg_ContactId = Contact.ContactId-- Get Contact Practice Area Name	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].Rg_practiceareaExtensionBase AS CPB     on ContPED.Rg_practiceareaId = CPB.Rg_practiceareaId--Relate back to rg_practiceare for check of delete state code	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].Rg_practiceareaBase PCB	 on PCB.Rg_practiceareaId = CPB.Rg_practiceareaId -- Get Marketing Lists	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[ListMemberBase] LMB	 ON  Contact.ContactId = LMB.EntityId   	 LEFT OUTER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].ListBase LB     ON LMB.ListId = LB.ListId ---- New Join to check and make sure the email is not flagged internally to Lyris and not the CRM	-- LEFT OUTER JOIN [Lyris_Prod].[dbo].[members_] LM --    ON LM.EmailAddr_  collate SQL_Latin1_General_CP1_CI_AS  = Contact.EmailAddress1  WHERE --	(--		Contact.EmailAddress1 = 'bhiggins@archcitydevelopment.com'--		or--		Contact.EmailAddress1 = 'dgasson@bostoncapital.com'--		or--		Contact.EmailAddress1 = 'dsmith@benjamindevco.com'--		or --		Contact.EmailAddress1 = 'paul.woodworth@suntrust.com'--	)--and-- Real Filters make sure they are always in place for real runs-- New check for members that are unsubscribed in Lyris but not marked in either CRM 5/5/2014 BGH--lm.MemberType_ <> 'unsub'--and(PAB.DeletionStateCode	IS NULL 	OR (		PAB.DeletionStateCode <> 2		))AND(PCB.DeletionStateCode	IS NULL 	OR (		PCB.DeletionStateCode <> 2		))AND(Account.DeletionStateCode	IS NULL 	OR (		Account.DeletionStateCode <> 2		))andContact.StatusCode = 1andContact.EmailAddress1 LIKE '%@%'ANDContact.EmailAddress1 LIKE '%.%'andContact.EmailAddress1 IS NOT NULLANDLEN(LTRIM(RTRIM(Contact.EmailAddress1))) > 4ANDUPPER(Contact.EmailAddress1) NOT LIKE '%@RFS.COM'ANDUPPER(Contact.EmailAddress1) NOT LIKE '%JHCOHN%'ANDUPPER(Contact.EmailAddress1) NOT LIKE '%REZNICKGROUP%'ANDContact.DoNotBulkEMail <> 1  ANDContact.DoNotSendMM <> 1and(ContactExt.Cpdc_Competitor	IS NULL 	OR (		ContactExt.Cpdc_Competitor <> 1		))and(AccountExt.rg_competitor	IS NULL 	OR (		AccountExt.rg_competitor <> 1		))and(AccountExt.rg_competitor	IS NULL 	OR (		AccountExt.rg_competitor <> 1		))and(AccountExt.cpdc_type_adverseparty	IS NULL 	OR (		AccountExt.cpdc_type_adverseparty <> 1		))AND(RemoveFromName.Value	IS NULL 	OR (		RemoveFromName.Value <> 'All Activities'		))AND(RemoveFromName.Value	IS NULL 	OR (		RemoveFromName.Value <> 'Communications'		))AND( (IndustryName.Value IS NOT NULL and LTRIM(RTRIM(IndustryName.Value)) = 'Real Estate - Affordable Housing')	OR (PB.Rg_Name IS NOT NULL AND LTRIM(RTRIM(PB.Rg_Name)) = 'Affordable Housing')  -- From company practice area	OR  (CPB.Rg_Name IS NOT NULL AND LTRIM(RTRIM(CPB.Rg_Name)) = 'Affordable Housing')  -- From contact practice area	OR  (LB.Listname IS NOT NULL AND LTRIM(RTRIM(LB.Listname)) = 'Affordable Housing (and LIHTC) Alerts and Events Notifications') -- From Marketing List	OR	 (LB.Listname IS NOT NULL AND LTRIM(RTRIM(LB.ListName)) = 'Affordable Housing News and Views Newsletter') -- From Marketing List)DELETE TmpTable FROM TmpTable WHERE 	  EmailAddr_ IS NULL			or      EmailAddr_ NOT LIKE '%@%'            OR      EmailAddr_ NOT LIKE '%.%'            OR      LEN(LTRIM(RTRIM(EmailAddr_))) < 4GO     -- Fill in the combined marketing listsUPDATE aSET Con_Mailings = STUFF((SELECT '; ' + c.ListName                    FROM [Hostcrm1].[ReznickGroup_MSCRM].[dbo].ListBase c                    INNER JOIN [Hostcrm1].[ReznickGroup_MSCRM].[dbo].[ListMemberBase] b                    ON b.ListID = c.ListID                     WHERE b.EntityID = a.TmpContactID                    ORDER BY c.ListID                     FOR XML PATH('')),1,1,'') FROM TmpTable aGODELETE TmpTable FROM TmpTable WHERE 	  Act_Industry <> 'Real Estate - Affordable Housing'			and      Act_IndustryPractice NOT LIKE '%Affordable%'             and      Con_Mailings NOT LIKE '%Affordable%' GOUPDATE TmpTable	SET EmailAddr_ = REPLACE(REPLACE(REPLACE(EmailAddr_,CHAR(10),''),CHAR(13),'') ,CHAR(9),'')FROM TmpTableGOUPDATE TmpTable	--SET Con_Mailings = REPLACE(Con_Mailings,CHAR(10)+CHAR(13), '' )	SET Con_Mailings = REPLACE(REPLACE(REPLACE(Con_Mailings,CHAR(10),''),CHAR(13),'') ,CHAR(9),'')FROM TmpTableGOUPDATE TmpTable	SET Con_Title = REPLACE(REPLACE(REPLACE(Con_Title,CHAR(10),''),CHAR(13),'') ,CHAR(9),'')FROM TmpTableGO--select EmailAddr_--	   ,FullName_--	   ,Act_Industry--	   ,Act_IndustryPractice--	   ,con_Mailings--	   from TmpTable--where EmailAddr_ = 'bhiggins@archcitydevelopment.com'--or--emailaddr_ = 'dgasson@bostoncapital.com'--or--EmailAddr_ = 'dsmith@benjamindevco.com'--or --emailaddr_ = 'paul.woodworth@suntrust.com'INSERT INTO [Lyris_Temp].[dbo].[Lyris_Combined]SELECT * FROM TmpTableBryan Holmstrom  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     MichaelJSQL 
                                    Constraint Violating Yak Guru 
                                     
                                    
                                    252 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2014-07-30 : 13:06:04
                                          
  | 
                                         
                                        
                                          | Question: Could you paste your complete query? I am not sure if you are just looking for a distinct value or if you are trying to pivot data. having all the columns/ SQL  output might help  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     MichaelJSQL 
                                    Constraint Violating Yak Guru 
                                     
                                    
                                    252 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2014-07-30 : 13:07:11
                                          
  | 
                                         
                                        
                                          | apoligies-- posted before refreshing  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                            
                                | 
                                    
                                      
                                     
                                    
                                 | 
                             
                         
                     | 
                 
             
         |   
     
     
            
              
	     |  
		
			
     
          
		 |