USE [cool]
GO

/****** Object:  View [dbo].[asr_stk_use_view]    Script Date: 2020/6/15 9:50:53 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

create view [dbo].[asr_stk_use_view] as
SELECT     row1, SUM(total_qty) AS total_qty, SUM(full_qty) AS full_qty, SUM(null_qty) AS null_qty, SUM(forbid_qty) AS forbid_qty, SUM(empty_qty) AS empty_qty, SUM(use_qty) AS use_qty, CONVERT(float,
                      SUM(CAST(full_qty AS DECIMAL(12, 2))) * 100 / SUM(total_qty)) AS full_rate, CONVERT(float, (SUM(CAST(full_qty AS DECIMAL(12, 2))) + SUM(forbid_qty) + SUM(empty_qty) + SUM(use_qty))
                      * 100 / SUM(total_qty)) AS occ_rate
FROM         (SELECT     row1, COUNT(*) AS total_qty, 0 AS full_qty, 0 AS null_qty, 0 AS forbid_qty, 0 AS empty_qty, 0 AS use_qty
                       FROM          dbo.asr_loc_mast
                       WHERE      (whs_type = 1)
                       GROUP BY row1
                       UNION ALL
                       SELECT     row1, 0 AS Expr1, COUNT(*) AS Expr2, 0 AS Expr3, 0 AS Expr4, 0 AS Expr5, 0 AS Expr6
                       FROM         dbo.asr_loc_mast AS asr_loc_mast_5
                       WHERE     (loc_sts = 'F') AND (whs_type = 1)
                       GROUP BY row1
                       UNION ALL
                       SELECT     row1, 0 AS Expr1, 0 AS Expr2, COUNT(*) AS Expr3, 0 AS Expr4, 0 AS Expr5, 0 AS Expr6
                       FROM         dbo.asr_loc_mast AS asr_loc_mast_4
                       WHERE     (loc_sts = 'O') AND (whs_type = 1)
                       GROUP BY row1
                       UNION ALL
                       SELECT     row1, 0 AS Expr1, 0 AS Expr2, 0 AS Expr3, COUNT(*) AS Expr4, 0 AS Expr5, 0 AS Expr6
                       FROM         dbo.asr_loc_mast AS asr_loc_mast_3
                       WHERE     (loc_sts = 'X') AND (whs_type = 1)
                       GROUP BY row1
                       UNION ALL
                       SELECT     row1, 0 AS Expr1, 0 AS Expr2, 0 AS Expr3, 0 AS Expr4, COUNT(*) AS Expr5, 0 AS Expr6
                       FROM         dbo.asr_loc_mast AS asr_loc_mast_2
                       WHERE     (loc_sts = 'D') AND (whs_type = 1)
                       GROUP BY row1
                       UNION ALL
                       SELECT     row1, 0 AS Expr1, 0 AS Expr2, 0 AS Expr3, 0 AS Expr4, 0 AS Expr5, COUNT(*) AS Expr6
                       FROM         dbo.asr_loc_mast AS asr_loc_mast_1
                       WHERE     (loc_sts = 'R' OR
                                             loc_sts = 'S' OR
                                             loc_sts = 'P' OR
                                             loc_sts = 'Q') AND (whs_type = 1)
                       GROUP BY row1) AS a
GROUP BY row1
GO


