1
|
-- BIEU DO O1 TING TRANG TAI SAN (GIA TRI)
|
2
|
ALTER PROC [dbo].[DB_STATUS_ASSET_VALUE_BAR]
|
3
|
@p_USER_LOGIN VARCHAR(250) = NULL,
|
4
|
@p_TYPE_ID VARCHAR(5) = NULL,
|
5
|
@p_GROUP_ID VARCHAR(15) = NULL,
|
6
|
@p_BRANCH_ID VARCHAR(15) = NULL,
|
7
|
@p_FROM_MONTH VARCHAR(4) = NULL,
|
8
|
@p_TO_MONTH VARCHAR(4) = NULL,
|
9
|
@p_FROM_YEAR VARCHAR(10) = NULL,
|
10
|
@p_TO_YEAR VARCHAR(10) = NULL,
|
11
|
@p_FILTER VARCHAR(100) = NULL
|
12
|
AS
|
13
|
BEGIN
|
14
|
DECLARE @BRANCH_LOGIN varchar(15) ='', @DEP_LOGIN varchar(15) =''
|
15
|
SELECT @DEP_LOGIN = SECUR_CODE, @BRANCH_LOGIN = TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN
|
16
|
|
17
|
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')))
|
18
|
BEGIN
|
19
|
IF(@BRANCH_LOGIN = 'DV0001') SET @p_BRANCH_ID = @DEP_LOGIN
|
20
|
ELSE SET @p_BRANCH_ID = @BRANCH_LOGIN
|
21
|
END
|
22
|
|
23
|
|
24
|
IF(@p_TYPE_ID = 'ALL') SET @p_TYPE_ID=''
|
25
|
IF(@p_FILTER = 'year')
|
26
|
BEGIN
|
27
|
SELECT DISTINCT
|
28
|
YEAR(USE_DATE_KT) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE
|
29
|
FROM ASS_MASTER A
|
30
|
WHERE 1=1
|
31
|
AND A.BUY_DATE_KT IS NOT NULL
|
32
|
AND (YEAR(A.USE_DATE_KT)<= CAST(@p_TO_YEAR AS INT) OR CAST(@p_TO_YEAR AS INT) IS NULL OR CAST(@p_TO_YEAR AS INT) ='')
|
33
|
AND (YEAR(A.USE_DATE_KT)>= CAST(@p_FROM_YEAR AS INT) OR CAST(@p_FROM_YEAR AS INT) IS NULL OR CAST(@p_FROM_YEAR AS INT) ='')
|
34
|
AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
35
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
36
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
37
|
AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
38
|
AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
39
|
GROUP BY YEAR(USE_DATE_KT)
|
40
|
ORDER BY YEAR(USE_DATE_KT) ASC
|
41
|
|
42
|
DECLARE @YEAR INT
|
43
|
DECLARE @TABLE TABLE(
|
44
|
USE_DATE_KT NVARCHAR(100) NULL,
|
45
|
BUY_PRICE DECIMAL(18,2) NULL,
|
46
|
[YEAR] VARCHAR(10) NULL
|
47
|
)
|
48
|
|
49
|
DECLARE CUR_FILTER_YEAR CURSOR FOR
|
50
|
SELECT DISTINCT
|
51
|
YEAR(USE_DATE_KT) AS USE_DATE_KT
|
52
|
FROM ASS_MASTER A WHERE 1=1
|
53
|
AND USE_DATE_KT IS NOT NULL
|
54
|
AND (YEAR(A.USE_DATE_KT)<= CAST(@p_TO_YEAR AS INT) OR CAST(@p_TO_YEAR AS INT) IS NULL OR CAST(@p_TO_YEAR AS INT) ='')
|
55
|
AND (YEAR(A.USE_DATE_KT)>= CAST(@p_FROM_YEAR AS INT) OR CAST(@p_FROM_YEAR AS INT) IS NULL OR CAST(@p_FROM_YEAR AS INT) ='')
|
56
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
57
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
58
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
59
|
AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
60
|
AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
61
|
OPEN CUR_FILTER_YEAR
|
62
|
|
63
|
FETCH NEXT FROM CUR_FILTER_YEAR
|
64
|
INTO @YEAR
|
65
|
|
66
|
WHILE @@FETCH_STATUS = 0
|
67
|
BEGIN
|
68
|
INSERT INTO @TABLE(USE_DATE_KT,BUY_PRICE,[YEAR])
|
69
|
(
|
70
|
SELECT N'0 - 3 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
|
71
|
WHERE 1=1
|
72
|
AND (@YEAR-YEAR(USE_DATE_KT) >= 0)
|
73
|
AND (@YEAR-YEAR(USE_DATE_KT) <= 3)
|
74
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
75
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
76
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
77
|
--AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
78
|
--AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
79
|
)
|
80
|
UNION ALL
|
81
|
(
|
82
|
SELECT N'3 - 5 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
|
83
|
WHERE 1=1
|
84
|
AND (@YEAR-YEAR(USE_DATE_KT) > 3)
|
85
|
AND (@YEAR-YEAR(USE_DATE_KT) <= 5)
|
86
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
87
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
88
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
89
|
--AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
90
|
--AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
91
|
)
|
92
|
UNION ALL
|
93
|
(
|
94
|
SELECT N'Trên 5 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
|
95
|
WHERE 1=1
|
96
|
AND (@YEAR-YEAR(USE_DATE_KT) > 5)
|
97
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
98
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
99
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
100
|
--AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
101
|
--AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
102
|
)
|
103
|
|
104
|
FETCH NEXT FROM CUR_FILTER_YEAR
|
105
|
INTO @YEAR
|
106
|
END
|
107
|
|
108
|
CLOSE CUR_FILTER_YEAR
|
109
|
DEALLOCATE CUR_FILTER_YEAR
|
110
|
|
111
|
SELECT * FROM @TABLE
|
112
|
ORDER BY [YEAR] ASC
|
113
|
END
|
114
|
ELSE IF (@p_FILTER = 'month')
|
115
|
BEGIN
|
116
|
SELECT DISTINCT
|
117
|
MONTH(USE_DATE_KT) AS [YEAR],ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) AS BUY_PRICE
|
118
|
FROM ASS_MASTER A
|
119
|
WHERE 1=1
|
120
|
AND A.BUY_DATE_KT IS NOT NULL
|
121
|
AND (YEAR(A.USE_DATE_KT) = CAST(@p_TO_YEAR AS INT) OR CAST(@p_TO_YEAR AS INT) IS NULL OR CAST(@p_TO_YEAR AS INT) ='')
|
122
|
AND (A.TYPE_ID=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
123
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
124
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
125
|
AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
126
|
AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
127
|
GROUP BY MONTH(USE_DATE_KT)
|
128
|
ORDER BY MONTH(USE_DATE_KT) ASC
|
129
|
|
130
|
DECLARE @MONTH INT
|
131
|
DECLARE @TABLE_MONTH TABLE(
|
132
|
USE_DATE_KT NVARCHAR(100) NULL,
|
133
|
BUY_PRICE DECIMAL(18,2) NULL,
|
134
|
[YEAR] INT NULL
|
135
|
)
|
136
|
|
137
|
DECLARE CUR_FILTER_YEAR CURSOR FOR
|
138
|
SELECT DISTINCT
|
139
|
MONTH(USE_DATE_KT) AS USE_DATE_KT
|
140
|
FROM ASS_MASTER A WHERE 1=1
|
141
|
AND USE_DATE_KT IS NOT NULL
|
142
|
AND (YEAR(A.USE_DATE_KT) = CAST(@p_TO_YEAR AS INT) OR CAST(@p_TO_YEAR AS INT) IS NULL OR CAST(@p_TO_YEAR AS INT) ='')
|
143
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
144
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
145
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
146
|
AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
147
|
AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
148
|
OPEN CUR_FILTER_YEAR
|
149
|
|
150
|
FETCH NEXT FROM CUR_FILTER_YEAR
|
151
|
INTO @YEAR
|
152
|
|
153
|
WHILE @@FETCH_STATUS = 0
|
154
|
BEGIN
|
155
|
INSERT INTO @TABLE_MONTH(USE_DATE_KT,BUY_PRICE,[YEAR])
|
156
|
(
|
157
|
SELECT N'0 - 3 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
|
158
|
WHERE 1=1
|
159
|
AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) >= 0)
|
160
|
AND (MONTH(A.USE_DATE_KT) <= CAST(@YEAR AS INT))
|
161
|
AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) <= 3)
|
162
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
163
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
164
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
165
|
--AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
166
|
--AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
167
|
)
|
168
|
UNION ALL
|
169
|
(
|
170
|
SELECT N'3 - 5 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
|
171
|
WHERE 1=1
|
172
|
AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) > 3)
|
173
|
AND (MONTH(A.USE_DATE_KT) <= CAST(@YEAR AS INT))
|
174
|
AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) <= 5)
|
175
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
176
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
177
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
178
|
--AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
179
|
--AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
180
|
)
|
181
|
UNION ALL
|
182
|
(
|
183
|
SELECT N'Trên 5 năm' USE_DATE_KT,ROUND(ISNULL(SUM(BUY_PRICE),0)/1000000000,2) BUY_PRICE,@YEAR AS [YEAR] FROM ASS_MASTER A
|
184
|
WHERE 1=1
|
185
|
AND (CAST(@p_TO_YEAR AS INT)-YEAR(USE_DATE_KT) > 5)
|
186
|
AND (MONTH(A.USE_DATE_KT) <= CAST(@YEAR AS INT))
|
187
|
AND (A.[TYPE_ID]=@p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID ='')
|
188
|
AND (A.GROUP_ID=@p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
|
189
|
AND (A.BRANCH_ID=@p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID ='' OR A.DEPT_ID = @p_BRANCH_ID)
|
190
|
--AND (MONTH(A.USE_DATE_KT)>= CAST(@p_FROM_MONTH AS INT) OR CAST(@p_FROM_MONTH AS INT) IS NULL OR CAST(@p_FROM_MONTH AS INT) ='')
|
191
|
--AND (MONTH(A.USE_DATE_KT)<= CAST(@p_TO_MONTH AS INT) OR CAST(@p_TO_MONTH AS INT) IS NULL OR CAST(@p_TO_MONTH AS INT) ='')
|
192
|
)
|
193
|
|
194
|
FETCH NEXT FROM CUR_FILTER_YEAR
|
195
|
INTO @YEAR
|
196
|
END
|
197
|
|
198
|
CLOSE CUR_FILTER_YEAR
|
199
|
DEALLOCATE CUR_FILTER_YEAR
|
200
|
|
201
|
SELECT * FROM @TABLE_MONTH
|
202
|
ORDER BY [YEAR] ASC
|
203
|
END
|
204
|
END
|
205
|
|