-- BIEU DO O1 TING TRANG TAI SAN (GIA TRI) ALTER PROC [dbo].[DB_STATUS_ASSET_VALUE_BAR] @p_USER_LOGIN VARCHAR(250) = NULL, @p_TYPE_ID VARCHAR(5) = NULL, @p_GROUP_ID VARCHAR(15) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_FROM_DATE VARCHAR(100) = NULL, @p_TO_DATE VARCHAR(100) = NULL, @p_AMORT_DATE_CHECK VARCHAR(100) = NULL, @p_USE_DATE_KT_CHECK VARCHAR(100) = NULL, @p_FILTER VARCHAR(100) = NULL AS BEGIN DECLARE @BRANCH_LOGIN varchar(15) ='', @DEP_LOGIN varchar(15) ='' SELECT @DEP_LOGIN = SECUR_CODE, @BRANCH_LOGIN = TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN IF(NOT EXISTS(SELECT * FROM CM_DEPARTMENT cd WHERE cd.BRANCH_ID = @BRANCH_LOGIN AND cd.DEP_ID = @DEP_LOGIN AND (cd.DEP_CODE = '0690604' OR cd.DEP_CODE = '0690802' OR cd.DEP_CODE = '0690803'))) BEGIN IF(@BRANCH_LOGIN = 'DV0001') SET @p_BRANCH_ID = @DEP_LOGIN ELSE SET @p_BRANCH_ID = @BRANCH_LOGIN END IF(@p_TYPE_ID = 'ALL') SET @p_TYPE_ID='' --IF(@p_USE_DATE_KT_CHECK = '1') --BEGIN -- SELECT DISTINCT -- YEAR(USE_DATE_KT) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE -- FROM ASS_MASTER A -- WHERE 1=1 -- AND A.BUY_DATE_KT IS NOT NULL -- --AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') -- AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='') -- AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') -- AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID)) -- AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID) -- GROUP BY YEAR(USE_DATE_KT) -- ORDER BY YEAR(USE_DATE_KT) ASC --END --ELSE IF(@p_AMORT_DATE_CHECK = '1') --BEGIN -- SELECT DISTINCT -- YEAR(AMORT_START_DATE) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE -- FROM ASS_MASTER A -- WHERE 1=1 -- AND A.BUY_DATE_KT IS NOT NULL -- --AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') -- AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='') -- AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') -- AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID)) -- AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID) -- GROUP BY YEAR(AMORT_START_DATE) -- ORDER BY YEAR(AMORT_START_DATE) ASC --END DECLARE @YEAR INT DECLARE @TABLE TABLE( USE_DATE_KT NVARCHAR(100) NULL, BUY_PRICE DECIMAL(18,2) NULL, [YEAR] VARCHAR(10) NULL ) DECLARE @TBALE_YEAR_FILTER TABLE( [YEAR] VARCHAR(10) ) DECLARE @YEAR_IN INT = YEAR(CONVERT(date,@p_TO_DATE,103)) INSERT INTO @TBALE_YEAR_FILTER VALUES(YEAR(CONVERT(date,@p_TO_DATE,103))) WHILE(@YEAR_IN > YEAR(CONVERT(date,@p_FROM_DATE,103))) BEGIN SET @YEAR_IN = @YEAR_IN - 1 INSERT INTO @TBALE_YEAR_FILTER VALUES(@YEAR_IN) END SELECT [YEAR],0 AS BUY_PRICE FROM @TBALE_YEAR_FILTER ORDER BY [YEAR] DECLARE CUR_FILTER_YEAR CURSOR FOR SELECT [YEAR] FROM @TBALE_YEAR_FILTER --SELECT DISTINCT -- CASE WHEN @p_USE_DATE_KT_CHECK = '1' THEN YEAR(USE_DATE_KT) -- ELSE YEAR(AMORT_START_DATE) END -- AS USE_DATE_KT --FROM ASS_MASTER A WHERE 1=1 --AND USE_DATE_KT IS NOT NULL --AND ((@p_USE_DATE_KT_CHECK = '1' AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')) -- OR (@p_AMORT_DATE_CHECK = '1' AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='')) -- ) --AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') --AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR A.GROUP_ID IN (SELECT GROUP_ID FROM ASS_GROUP WHERE PARENT_ID = @p_GROUP_ID)) --AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID) OPEN CUR_FILTER_YEAR IF(@p_USE_DATE_KT_CHECK = '1') BEGIN FETCH NEXT FROM CUR_FILTER_YEAR INTO @YEAR WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO @TABLE(USE_DATE_KT,BUY_PRICE,[YEAR]) ( SELECT N'0 - 3 năm' USE_DATE_KT,ROUND(ISNULL(SUM(VL.BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A INNER JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS BUY_PRICE FROM ASS_VALUES X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.CREATE_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) VL ON A.ASSET_ID = VL.ASSET_ID LEFT JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS AMORTIZED_AMT FROM ASS_AMORT_DT X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.AMORT_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) AM ON A.ASSET_ID = AM.ASSET_ID WHERE 1=1 AND A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A' AND A.ENTRY_BOOKED = 'Y' --AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND ((A.[TYPE_ID] = 'TSCD' AND CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='') OR (A.[TYPE_ID] = 'CCLD' AND A.AMORT_STATUS <> 'VNM' AND CONVERT(date,A.LIQUIDATION_DT,103) > CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='')) AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='' OR (A.TYPE_ID ='TSCD' AND (A.USE_DATE_KT IS NULL OR A.USE_DATE_KT =''))) AND (@YEAR-YEAR(USE_DATE_KT) >= 0 OR (A.TYPE_ID ='TSCD' AND (A.USE_DATE_KT IS NULL OR A.USE_DATE_KT =''))) AND (@YEAR-YEAR(USE_DATE_KT) <= 3 OR (A.TYPE_ID ='TSCD' AND (A.USE_DATE_KT IS NULL OR A.USE_DATE_KT =''))) AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID)) AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID OR (A.TYPE_ID ='TSCD' AND ISNULL(A.BRANCH_CREATE,'') =@p_BRANCH_ID)) ) UNION ALL ( SELECT N'3 - 5 năm' USE_DATE_KT,ROUND((ISNULL(SUM(VL.BUY_PRICE),0) -ISNULL(SUM(AM.AMORTIZED_AMT),0))/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A INNER JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS BUY_PRICE FROM ASS_VALUES X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.CREATE_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) VL ON A.ASSET_ID = VL.ASSET_ID LEFT JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS AMORTIZED_AMT FROM ASS_AMORT_DT X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.AMORT_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) AM ON A.ASSET_ID = AM.ASSET_ID WHERE 1=1 AND A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A' AND A.ENTRY_BOOKED = 'Y' --AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND ((A.[TYPE_ID] = 'TSCD' AND CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='') OR (A.[TYPE_ID] = 'CCLD' AND A.AMORT_STATUS <> 'VNM' AND CONVERT(date,A.LIQUIDATION_DT,103) > CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='')) AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='') AND (@YEAR-YEAR(USE_DATE_KT) > 3) AND (@YEAR-YEAR(USE_DATE_KT) <= 5) AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID)) AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID OR (A.TYPE_ID ='TSCD' AND ISNULL(A.BRANCH_CREATE,'') =@p_BRANCH_ID)) ) UNION ALL ( SELECT N'Trên 5 năm' USE_DATE_KT,ROUND((ISNULL(SUM(VL.BUY_PRICE),0) -ISNULL(SUM(AM.AMORTIZED_AMT),0))/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A INNER JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS BUY_PRICE FROM ASS_VALUES X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.CREATE_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) VL ON A.ASSET_ID = VL.ASSET_ID LEFT JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS AMORTIZED_AMT FROM ASS_AMORT_DT X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.AMORT_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) AM ON A.ASSET_ID = AM.ASSET_ID WHERE 1=1 AND A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A' AND A.ENTRY_BOOKED = 'Y' --AND (CONVERT(date,A.USE_DATE_KT,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND ((A.[TYPE_ID] = 'TSCD' AND CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='') OR (A.[TYPE_ID] = 'CCLD' AND A.AMORT_STATUS <> 'VNM' AND CONVERT(date,A.LIQUIDATION_DT,103) > CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='')) AND (CONVERT(date,A.USE_DATE_KT,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='') AND (@YEAR-YEAR(USE_DATE_KT) > 5) AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID)) AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID OR (A.TYPE_ID ='TSCD' AND ISNULL(A.BRANCH_CREATE,'') =@p_BRANCH_ID)) ) FETCH NEXT FROM CUR_FILTER_YEAR INTO @YEAR END END ELSE IF(@p_AMORT_DATE_CHECK = '1') BEGIN FETCH NEXT FROM CUR_FILTER_YEAR INTO @YEAR WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO @TABLE(USE_DATE_KT,BUY_PRICE,[YEAR]) ( SELECT N'0 - 3 năm' USE_DATE_KT,ROUND((ISNULL(SUM(VL.BUY_PRICE),0) -ISNULL(SUM(AM.AMORTIZED_AMT),0))/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A INNER JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS BUY_PRICE FROM ASS_VALUES X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.CREATE_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) VL ON A.ASSET_ID = VL.ASSET_ID LEFT JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS AMORTIZED_AMT FROM ASS_AMORT_DT X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.AMORT_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) AM ON A.ASSET_ID = AM.ASSET_ID WHERE 1=1 AND A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A' AND A.ENTRY_BOOKED = 'Y' --AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND ((A.[TYPE_ID] = 'TSCD' AND CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='') OR (A.[TYPE_ID] = 'CCLD' AND A.AMORT_STATUS <> 'VNM' AND CONVERT(date,A.LIQUIDATION_DT,103) > CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='')) AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='') AND (@YEAR-YEAR(AMORT_START_DATE) >= 0 OR (A.TYPE_ID ='TSCD' AND (A.AMORT_START_DATE IS NULL OR A.AMORT_START_DATE =''))) AND (@YEAR-YEAR(AMORT_START_DATE) <= 3 OR (A.TYPE_ID ='TSCD' AND (A.AMORT_START_DATE IS NULL OR A.AMORT_START_DATE =''))) AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID)) AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID OR (A.TYPE_ID ='TSCD' AND ISNULL(A.BRANCH_CREATE,'') =@p_BRANCH_ID)) ) UNION ALL ( SELECT N'3 - 5 năm' USE_DATE_KT,ROUND((ISNULL(SUM(VL.BUY_PRICE),0) -ISNULL(SUM(AM.AMORTIZED_AMT),0))/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A INNER JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS BUY_PRICE FROM ASS_VALUES X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.CREATE_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) VL ON A.ASSET_ID = VL.ASSET_ID LEFT JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS AMORTIZED_AMT FROM ASS_AMORT_DT X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.AMORT_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) AM ON A.ASSET_ID = AM.ASSET_ID WHERE 1=1 AND A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A' AND A.ENTRY_BOOKED = 'Y' --AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND ((A.[TYPE_ID] = 'TSCD' AND CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='') OR (A.[TYPE_ID] = 'CCLD' AND A.AMORT_STATUS <> 'VNM' AND CONVERT(date,A.LIQUIDATION_DT,103) > CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='')) AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='') AND (@YEAR-YEAR(AMORT_START_DATE) > 3) AND (@YEAR-YEAR(AMORT_START_DATE) <= 5) AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID)) AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID) ) UNION ALL ( SELECT N'Trên 5 năm' USE_DATE_KT,ROUND((ISNULL(SUM(VL.BUY_PRICE),0) -ISNULL(SUM(AM.AMORTIZED_AMT),0))/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A INNER JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS BUY_PRICE FROM ASS_VALUES X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.CREATE_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) VL ON A.ASSET_ID = VL.ASSET_ID LEFT JOIN ( SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS AMORTIZED_AMT FROM ASS_AMORT_DT X INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID WHERE --X.CREATE_DT >= Y.CREATE_DT (X.AMORT_DT <= CONVERT(DATE,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE = '') GROUP BY X.ASSET_ID ) AM ON A.ASSET_ID = AM.ASSET_ID WHERE 1=1 AND A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A' AND A.ENTRY_BOOKED = 'Y' --AND (CONVERT(date,A.AMORT_START_DATE,103) >= CONVERT(date,@p_FROM_DATE,103) OR @p_FROM_DATE IS NULL OR @p_FROM_DATE ='') AND ((A.[TYPE_ID] = 'TSCD' AND CONVERT(date,A.LIQUIDATION_DT,103) >= CONVERT(date,@p_FROM_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='') OR (A.[TYPE_ID] = 'CCLD' AND A.AMORT_STATUS <> 'VNM' AND CONVERT(date,A.LIQUIDATION_DT,103) > CONVERT(date,@p_TO_DATE,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT ='')) AND (CONVERT(date,A.AMORT_START_DATE,103) <= CONVERT(date,@p_TO_DATE,103) OR @p_TO_DATE IS NULL OR @p_TO_DATE ='') AND (@YEAR-YEAR(AMORT_START_DATE) > 5) AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='') AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='' OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,1) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,2) =@p_GROUP_ID) OR (DBO.[FN_GET_GROUPID] (A.GROUP_ID,3) =@p_GROUP_ID)) AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID) ) FETCH NEXT FROM CUR_FILTER_YEAR INTO @YEAR END END CLOSE CUR_FILTER_YEAR DEALLOCATE CUR_FILTER_YEAR SELECT * FROM @TABLE ORDER BY [YEAR] ASC END