HourlyResult.sql 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. USE [MES]
  2. GO
  3. /****** Object: UserDefinedFunction [dbo].[HourlyResult] Script Date: 12/20/2021 18:35:41 ******/
  4. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[HourlyResult]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
  5. DROP FUNCTION [dbo].[HourlyResult]
  6. GO
  7. USE [MES]
  8. GO
  9. /****** Object: UserDefinedFunction [dbo].[HourlyResult] Script Date: 12/20/2021 18:35:41 ******/
  10. SET ANSI_NULLS ON
  11. GO
  12. SET QUOTED_IDENTIFIER ON
  13. GO
  14. /*
  15. TotalAll
  16. TotalZero
  17. OncePassAll
  18. OncePassZero
  19. NTFAll
  20. NTFZero
  21. RealFail
  22. NTFSN
  23. FailDSN
  24. */
  25. CREATE FUNCTION [dbo].[HourlyResult](
  26. @Line varchar(30),
  27. @Station varchar(30),
  28. @ODF varchar(30),
  29. @TestDate DATE,
  30. @TestHour INT)
  31. RETURNS TABLE as
  32. RETURN select
  33. --抄写总数,含重流;
  34. TotalAll = count(1),-- as 'Total',
  35. --抄写总数,去重流;
  36. TotalZero = count(case when ReDo = '0' then 1 else null end),-- as 'Total',
  37. --一次成功数量,含重流;
  38. OncePassAll = count(case when ResultType = 'OncePass' then 1 else null end),-- as 'OncePass',
  39. --一次成功数量,去重流;
  40. OncePassZero = count(case when ResultType = 'OncePass' and ReDo = '0' then 1 else null end),-- as 'OncePass',
  41. --NTF总数数量,含重流;
  42. NTFAll = count(case when ResultType = 'NTF' then 1 else null end),-- as 'NTF',
  43. --NTF总数数量,去重流;
  44. NTFZero = count(case when ResultType = 'NTF' and ReDo = '0' then 1 else null end),-- as 'NTF',
  45. --实际失败数量,含重流.
  46. RealFail = count(case when ResultType = 'RealFail' then 1 else null end),-- as 'RealFail',
  47. --NTF的SN集合;
  48. NTFSN = stuff((select ',' + SN from AMResult 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',
  49. --FinalTest为Fail的集合;
  50. FailDSN = stuff((select ',' + DSN from AMResult 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'
  51. --查询条件:线体、工站、ODF、测试日期、整点
  52. from AMResult where Line=@Line and Station=@Station and ODF=@ODF and TestDate=@TestDate and TestHour=@TestHour
  53. GO