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 |
byka
Starting Member
18 Posts |
Posted - 2014-06-06 : 08:20:59
|
I have the following query where I am using STUFF to generate string. How can I check if InNetCoInsurance values are same don't add to string? I need to add only different values.SELECT RegionName,BenefitTypeDesc,FilingDesc, DraftingNote,AdminNote,Combine, STUFF((SELECT '; ' + InNetCoInsurance FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') [InNetCoInsurance]FROM @Benefits WHERE Combine='True' GROUP By RegionName,BenefitTypeDesc,FilingDesc, DraftingNote,AdminNote,CombineORDER BY 1byka |
|
James K
Master Smack Fu Yak Hacker
3873 Posts |
Posted - 2014-06-06 : 09:04:01
|
Add a distinct clause as shown below.quote: Originally posted by byka I have the following query where I am using STUFF to generate string. How can I check if InNetCoInsurance values are same don't add to string? I need to add only different values.SELECT RegionName,BenefitTypeDesc,FilingDesc, DraftingNote,AdminNote,Combine, STUFF((SELECT DISTINCT '; ' + InNetCoInsurance FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') [InNetCoInsurance]FROM @Benefits WHERE Combine='True' GROUP By RegionName,BenefitTypeDesc,FilingDesc, DraftingNote,AdminNote,CombineORDER BY 1byka
|
|
|
byka
Starting Member
18 Posts |
Posted - 2014-06-06 : 09:13:25
|
Thank you, it worked.Another question:I need to compare 3 columns values in a row and if values are different leave row if values in 3 columns are the same roll up into 1 row? STUFF((SELECT DISTINCT '; ' + InNetBenefitMax FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') InNetBenefitMax, STUFF((SELECT DISTINCT '; ' + OutNetCoInsurance FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') OutNetCoInsurance, STUFF((SELECT DISTINCT '; ' + OutNetBenefitMax FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') OutNetBenefitMax, byka |
|
|
James K
Master Smack Fu Yak Hacker
3873 Posts |
Posted - 2014-06-06 : 11:30:16
|
quote: Originally posted by byka Thank you, it worked.Another question:I need to compare 3 columns values in a row and if values are different leave row if values in 3 columns are the same roll up into 1 row? STUFF((SELECT DISTINCT '; ' + InNetBenefitMax FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') InNetBenefitMax, STUFF((SELECT DISTINCT '; ' + OutNetCoInsurance FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') OutNetCoInsurance, STUFF((SELECT DISTINCT '; ' + OutNetBenefitMax FROM @Benefits US WHERE US.BenefitTypeID = us.BenefitTypeID FOR XML PATH('')), 1, 1, '') OutNetBenefitMax, byka
I did not understand the question.This is what I understood:1. You have a table with 3 columns (and may be other columns). 2. For each row in this table, if the values in these 3 rows are the same, do nothing at all.3. If the values in the 3 columns in a given row happen to be different, then do something. You said you want to "roll up into one row". What does that mean? Can you post an example? |
|
|
|
|
|
|
|