Advertisement
chekalin-v

Untitled

Aug 15th, 2013
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.03 KB | None | 0 0
  1. USE [gsa2]
  2. GO
  3. /****** Object:  UserDefinedFunction [dbo].[fn_get_assign_id]    Script Date: 08/15/2013 19:29:29 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER   fUNCTION [dbo].[fn_get_assign_id] (@pk_work_order_id uniqueidentifier)
  9. Returns  nvarchar(max)
  10. As
  11. -- select dbo.fn_get_assign_id('10bd5def-d809-4fe6-9175-ef176bde9c07')
  12. Begin
  13. declare @var nvarchar(max)
  14. declare @count int
  15. set @var = ''
  16.  
  17. declare @RET table (id int identity, name nvarchar(max))
  18.  
  19.  
  20. declare @IssueUserCount table (UserCount int,name nvarchar(max),pk_organization_id uniqueidentifier)
  21.  
  22. declare @OrganizationUserCount table (UserCount int,name nvarchar(max),pk_organization_id uniqueidentifier)
  23.  
  24. declare @temp table (UserCount int,pk_organization_id uniqueidentifier)
  25. --return
  26.  
  27.  
  28. insert into  @IssueUserCount
  29.  Select Count(1) as UserCount, vgo.name,vgo.pk_organization_id
  30.      
  31.         from  vw_get_organization vgo
  32.               Inner Join vw_get_user vgu on vgu.fk_organization_id=vgo.pk_organization_id
  33.               Inner Join tbl_work_order_owner_linkup tiol on tiol.fk_user_id=vgu.pk_user_id
  34.               where tiol.fk_work_order_id=@pk_work_order_id
  35.               group by vgo.name,vgo.pk_organization_id
  36.               order by vgo.name
  37.            
  38.          insert into @OrganizationUserCount    
  39.  Select count(1) as UserCount ,vgo.name ,vgo.pk_organization_id
  40.  
  41.                 from  vw_get_organization vgo
  42.                         Inner Join vw_get_user vgu on vgu.fk_organization_id=vgo.pk_organization_id
  43.                 group by vgo.name,vgo.pk_organization_id
  44.                 order by vgo.name
  45.              
  46.             insert into @temp    
  47.  Select uc.USerCount,uc.pk_organization_id  
  48.   from @IssueUserCount uc
  49.  
  50.                inner join @OrganizationUserCount ouc on ouc.pk_organization_id=uc.pk_organization_id
  51.                 and uc.UserCount<>ouc.UserCount
  52.  insert into @RET
  53.  Select uc.name as UserOrganizationname
  54.        
  55.         from @IssueUserCount uc
  56.         inner join @OrganizationUserCount ouc on ouc.pk_organization_id=uc.pk_organization_id
  57.                    and uc.UserCount=ouc.UserCount
  58.  Union
  59.  Select distinct cast(vgu.pk_user_id as varchar(50)) as UserId
  60.                   from tbl_work_order_owner_linkup tiol
  61.                                inner join vw_get_user vgu on vgu.pk_user_id=tiol.fk_user_id
  62.                                inner join vw_get_organization vgo on vgo.pk_organization_id=vgu.fk_organization_id
  63.                                where vgo.pk_organization_id in (select pk_organization_id from @temp)
  64.                               and tiol.fk_work_order_id=@pk_work_order_id
  65.  
  66.   select @count = count(1)  from @RET
  67.  
  68.   while (@count > 0 )
  69.   BEGIN
  70.  
  71.    select  @var =  @var + name+',' from @RET
  72.    where id = @count
  73.  
  74.   set  @count = @count - 1  
  75.    
  76.   END
  77.  
  78.    if(len(@var)>0)
  79.    begin
  80.    select  @var =  substring (@var,1,len(@var)-1)
  81.    end
  82.    
  83.   return @var                
  84.                              
  85.  --drop table @temp
  86.  --drop table @IssueUserCount
  87.  --drop table @OrganizationUserCount
  88.  
  89.  
  90. End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement