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  | 
                             
                            
                                    | 
                                         jayram11 
                                        Yak Posting Veteran 
                                         
                                        
                                        97 Posts  | 
                                        
                                        
                                            
                                            
                                             Posted - 2011-11-01 : 14:44:11
                                            
  | 
                                             
                                            
                                            | i have a table CREATE TABLE [dbo].[HCPCS_2012](	[HCPCS] [varchar](5) NULL,	[Seq_Num] [int] NULL,	[Long_Description] [varchar](1000) NULL) ON [PRIMARY]insert into HCPCS_2012 select 'A0021', 100, 'AMBULANCE SERVICE, OUTSIDE STATE PER MILE, TRANSPORT (MEDICAID ONLY)'insert into HCPCS_2012 select 'A0080', 100, 'NON-EMERGENCY TRANSPORTATION, PER MILE - VEHICLE PROVIDED BY VOLUNTEER'insert into HCPCS_2012 select 'A0080', 200, '(INDIVIDUAL OR ORGANIZATION), WITH NO VESTED INTEREST'insert into HCPCS_2012 select 'A0090', 100, 'NON-EMERGENCY TRANSPORTATION, PER MILE - VEHICLE PROVIDED BY INDIVIDUAL (FAMILY'insert into HCPCS_2012 select 'A0090', 200, 'MEMBER, SELF, NEIGHBOR) WITH VESTED INTEREST'insert into HCPCS_2012 select 'A0100', 100, 'NON-EMERGENCY TRANSPORTATION; TAXI'insert into HCPCS_2012 select 'A0110', 100, 'NON-EMERGENCY TRANSPORTATION AND BUS, INTRA OR INTER STATE CARRIER'insert into HCPCS_2012 select 'A0120', 100, 'NON-EMERGENCY TRANSPORTATION: MINI-BUS, MOUNTAIN AREA TRANSPORTS, OR OTHER'insert into HCPCS_2012 select 'A0120', 200, 'TRANSPORTATION SYSTEMS'I am trying to concatenate the long description for an HCPCS and am trying to use a recursive function but i get an error message like below. When i create the function it give me this Cannot add rows to sysdepends for the current stored procedure because it depends on the missing object 'dbo.udf_recursive'. The stored procedure will still be created.which i understand because i am parsing the function when creating it but when compiling it it gives me thisMsg 217, Level 16, State 1, Procedure UDF_RECURSIVE, Line 11Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).My SEQ_NUM in group by HCPCS does not exceed 32 levels i.e) my seq num run from 100 to 1100 in multiples of 100Can you tell me what ia m doing wrong?Thanks CREATE FUNCTION UDF_RECURSIVE ( @cid Varchar, @i int)     RETURNS VARCHAR(8000) AS BEGIN         DECLARE @r VARCHAR(8000), @l VARCHAR(8000)         SELECT @i = @i - 1,  @r = LONG_DESCRIPTION + ' '           FROM HCPCS_2012 p1          WHERE HCPCS = @cid            AND @i = ( SELECT COUNT(*) FROM HCPCS_2012 p2                        WHERE p2.HCPCS = p1.HCPCS                          AND p2.SEQ_NUM <= p1.SEQ_NUM ) ;         IF @i > 0 BEGIN               EXEC @l = dbo.udf_recursive @cid, @i ;              SET @r =  @l + @r ;    END     RETURN @r ;    END     SELECT HCPCS,           dbo.udf_recursive( HCPCS, COUNT(LONG_DESCRIPTION))       FROM HCPCS_2012     GROUP BY HCPCS; | 
                                             
                                         
                                     | 
                             
       
                            
                       
                          
                            
                                    | 
                                     nigelrivett 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    3385 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2011-11-01 : 14:59:23
                                          
  | 
                                         
                                        
                                          | Is this a test of using recursive functions - it's a complicated way of doing this.http://www.nigelrivett.net/SQLTsql/CSVStringSQL.htmlTry running it for one cid with a hard coded count.==========================================Cursors are useful if you don't know sql.SSIS can be used in a similar way.Beer is not cold and it isn't fizzy.  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     jayram11 
                                    Yak Posting Veteran 
                                     
                                    
                                    97 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2011-11-01 : 15:31:11
                                          
  | 
                                         
                                        
                                          | I did it for one cid with 12 seq num and it gave the same error.  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     jayram11 
                                    Yak Posting Veteran 
                                     
                                    
                                    97 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2011-11-01 : 15:53:59
                                          
  | 
                                         
                                        
                                          | i am using this instead of the recurive function in Sql 2005SELECT DISTINCT HCPCS, DESCRIPTIONS      FROM HCPCS_2012 p1     CROSS APPLY ( SELECT LONG_DESCRIPTION + ' '                      FROM HCPCS_2012 p2                    WHERE p2.HCPCS = p1.HCPCS                    ORDER BY SEQ_NUM                       FOR XML PATH('') )  D ( DESCRIPTIONS ) and it works  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     nigelrivett 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    3385 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2011-11-01 : 17:27:46
                                          
  | 
                                         
                                        
                                          | Hence my question about why you are trying to do it this way.Ah - v2000.==========================================Cursors are useful if you don't know sql.SSIS can be used in a similar way.Beer is not cold and it isn't fizzy.  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     TG 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    6065 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2011-11-02 : 11:46:08
                                          
  | 
                                         
                                        
                                          The way I did that in 2000 days was a simple scalar function to concatenate for one group (HCPCS).  Then use it in a SELECT:select HCPCS, dbo.fn_concatByHCPCS(HCPCS)from (select distinct HCPCS from HCPCS_2012) dThe body of the function can be something like this:declare @outselect @out = coalesce(@out + ',' + HCPCS, HCPCS) from HCPCS_2012 where HCPCS = @inselect @outEDIT:like this:gocreate function dbo.fn_concatbyHCPCS(@HCPCS  varchar(5))returns varchar(1000)asbegin       declare @out varchar(1000)       select @out = coalesce(@out + ', ' + Long_Description, Long_Description)        from HCPCS_2012        where HCPCS = @HCPCS       order by Seq_Num       return @outendgoselect HCPCS, dbo.fn_concatByHCPCS(HCPCS) [LongDescription]from (select distinct HCPCS from HCPCS_2012) dOUTPUT:HCPCS LongDescription----- --------------------------------------------------------------------------------------------------------------------------------A0021 AMBULANCE SERVICE, OUTSIDE STATE PER MILE, TRANSPORT (MEDICAID ONLY)A0080 NON-EMERGENCY TRANSPORTATION, PER MILE - VEHICLE PROVIDED BY VOLUNTEER, (INDIVIDUAL OR ORGANIZATION), WITH NO VESTED INTERESTA0090 NON-EMERGENCY TRANSPORTATION, PER MILE - VEHICLE PROVIDED BY INDIVIDUAL (FAMILY, MEMBER, SELF, NEIGHBOR) WITH VESTED INTERESTA0100 NON-EMERGENCY TRANSPORTATION; TAXIA0110 NON-EMERGENCY TRANSPORTATION AND BUS, INTRA OR INTER STATE CARRIERA0120 NON-EMERGENCY TRANSPORTATION: MINI-BUS, MOUNTAIN AREA TRANSPORTS, OR OTHER, TRANSPORTATION SYSTEMS EDIT2: added the "order by seq_num"Be One with the OptimizerTG  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                            
                                | 
                                    
                                      
                                     
                                    
                                 | 
                             
                         
                     | 
                 
             
         |   
     
     
            
              
	     |  
		
			
     
          
		 |