HourlyResultTR.sql 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. USE [MES]
  2. GO
  3. /****** Object: UserDefinedFunction [dbo].[HourlyResultTR] Script Date: 12/20/2021 18:35:41 ******/
  4. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[HourlyResultTR]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
  5. DROP FUNCTION [dbo].[HourlyResultTR]
  6. GO
  7. USE [MES]
  8. GO
  9. /****** Object: UserDefinedFunction [dbo].[HourlyResultTR] Script Date: 12/20/2021 18:35:41 ******/
  10. SET ANSI_NULLS ON
  11. GO
  12. SET QUOTED_IDENTIFIER ON
  13. GO
  14. /*
  15. Total
  16. OncePass
  17. NTF
  18. RealFail
  19. */
  20. CREATE FUNCTION [dbo].[HourlyResultTR](
  21. @Line varchar(30),
  22. @Station varchar(30),
  23. @ODF varchar(30),
  24. @TestDate DATE,
  25. @TestHour INT)
  26. RETURNS TABLE as
  27. RETURN select
  28. --抄写总数(包含重流和非重流的)
  29. TotalAll = count(1),-- as 'Total',
  30. TotalZero = count(case when ReDo = '0' then 1 else null end),-- as 'Total',
  31. --有且只有一次测试且成功 Test01=FinalTest=PASS & Test02=NULL
  32. OncePassAll = count(case when ResultType = 'OncePass' then 1 else null end),-- as 'OncePass',
  33. OncePassZero = count(case when ResultType = 'OncePass' and ReDo = '0' then 1 else null end),-- as 'OncePass',
  34. --抄写2次或2次以上:Test01=FAIL & Test02=FinalTest=PASS
  35. NTFAll = count(case when ResultType = 'NTF' then 1 else null end),-- as 'NTF',
  36. NTFZero = count(case when ResultType = 'NTF' and ReDo = '0' then 1 else null end),-- as 'NTF',
  37. --含重码.
  38. RealFail = count(case when ResultType = 'RealFail' then 1 else null end),-- as 'RealFail',
  39. NTFSN = stuff((select ',' + SN from AMResult_TR where Line=@Line and Station=@Station and ODF=@ODF and TestDate=@TestDate and TestHour=@TestHour and ResultType='NTF' for XML PATH('')),1,1,''),-- as 'NTFSN',
  40. FailDSN = stuff((select ',' + DSN from AMResult_TR where Line=@Line and Station=@Station and ODF=@ODF and TestDate=@TestDate and TestHour=@TestHour and FinalTest='FAIL' for XML PATH('')),1,1,'')-- as 'FailDSN'
  41. from AMResult_TR where Line=@Line and Station=@Station and ODF=@ODF and TestDate=@TestDate and TestHour=@TestHour
  42. GO