Project

General

Profile

Bug #2059 ยป CBIATMTOPYTRIPHINOTARIF_20230313.sql

Tri Rizqiaty, 03/15/2023 11:02 AM

 
1
??ALTER PROCEDURE [dbo].[CBIATMTOPYTRIPHINOTARIF]
2

3
(
4

5
	@EmployeeID VARCHAR(20)
6

7
	,@StartDate VARCHAR(20)
8

9
	,@EndDate VARCHAR(20)
10

11
)
12

13
AS
14

15

16

17
--DECLARE @EmployeeID VARCHAR(20) = '13010127'
18

19
--DECLARE @StartDate VARCHAR(20) = '20230101'
20

21
--DECLARE @EndDate VARCHAR(20) = '20230131'
22

23

24

25
DECLARE @CTARIF TABLE
26

27
(
28

29
	EmployeeID VARCHAR(20)
30

31
	,TipeTrip01 DECIMAL(22,2)
32

33
	,TipeTrip02 DECIMAL(22,2)
34

35
	,TipeTrip03 DECIMAL(22,2)
36

37
	,TipeTrip04 DECIMAL(22,2)
38

39
	,TipeTrip05 DECIMAL(22,2)
40

41
	,TipeTrip06 DECIMAL(22,2)
42

43
	,TipeTrip07 DECIMAL(22,2)
44

45
	,TipeTrip08 DECIMAL(22,2)
46

47
	,TipeTrip09 DECIMAL(22,2)
48

49
	,TipeTrip10 DECIMAL(22,2)
50

51
	,TipeTrip11 DECIMAL(22,2)
52

53
	,TipeTrip12 DECIMAL(22,2)
54

55
	,TipeTrip13 DECIMAL(22,2)
56

57
	,TipeTrip14 DECIMAL(22,2)
58

59
	,TipeTrip15 DECIMAL(22,2)
60

61
	,TipeTrip16 DECIMAL(22,2)
62

63
	,TipeTrip17 DECIMAL(22,2)
64

65
	,TipeTrip18 DECIMAL(22,2)
66

67
	,TipeTrip19 DECIMAL(22,2)
68

69
	,TipeTrip20 DECIMAL(22,2)
70

71
)
72

73

74

75
INSERT INTO @CTARIF
76

77
SELECT @EmployeeID, * FROM (SELECT FieldName, Tarif AS Tarif FROM CTARIFTRIPHINODUMPTRUCK) AS SourceTable
78

79
PIVOT (MAX(Tarif)
80

81
FOR FieldName IN
82

83
(	[TipeTrip01],
84

85
	[TipeTrip02],
86

87
	[TipeTrip03],
88

89
	[TipeTrip04],
90

91
	[TipeTrip05],
92

93
	[TipeTrip06],
94

95
	[TipeTrip07],
96

97
	[TipeTrip08],
98

99
	[TipeTrip09],
100

101
	[TipeTrip10],
102

103
	[TipeTrip11],
104

105
	[TipeTrip12],
106

107
	[TipeTrip13],
108

109
	[TipeTrip14],
110

111
	[TipeTrip15],
112

113
	[TipeTrip16],
114

115
	[TipeTrip17],
116

117
	[TipeTrip18],
118

119
	[TipeTrip19],
120

121
	[TipeTrip20])
122

123
) AS pvt
124

125

126

127
DECLARE @TblResult TABLE
128

129
(
130

131
	EmployeeID VARCHAR(20)
132

133
	,StartDate VARCHAR(20)
134

135
	,TipeTrip01 VARCHAR(20)
136

137
	,TipeTrip02 VARCHAR(20)
138

139
	,TipeTrip03 VARCHAR(20)
140

141
	,TipeTrip04 VARCHAR(20)
142

143
	,TipeTrip05 VARCHAR(20)
144

145
	,TipeTrip06 VARCHAR(20)
146

147
	,TipeTrip07 VARCHAR(20)
148

149
	,TipeTrip08 VARCHAR(20)
150

151
	,TipeTrip09 VARCHAR(20)
152

153
	,TipeTrip10 VARCHAR(20)
154

155
	,TipeTrip11 VARCHAR(20)
156

157
	,TipeTrip12 VARCHAR(20)
158

159
	,TipeTrip13 VARCHAR(20)
160

161
	,TipeTrip14 VARCHAR(20)
162

163
	,TipeTrip15 VARCHAR(20)
164

165
	,TipeTrip16 VARCHAR(20)
166

167
	,TipeTrip17 VARCHAR(20)
168

169
	,TipeTrip18 VARCHAR(20)
170

171
	,TipeTrip19 VARCHAR(20)
172

173
	,TipeTrip20 VARCHAR(20)
174

175
	,TarifTipeTrip01 DECIMAL(22,2)
176

177
	,TarifTipeTrip02 DECIMAL(22,2)
178

179
	,TarifTipeTrip03 DECIMAL(22,2)
180

181
	,TarifTipeTrip04 DECIMAL(22,2)
182

183
	,TarifTipeTrip05 DECIMAL(22,2)
184

185
	,TarifTipeTrip06 DECIMAL(22,2)
186

187
	,TarifTipeTrip07 DECIMAL(22,2)
188

189
	,TarifTipeTrip08 DECIMAL(22,2)
190

191
	,TarifTipeTrip09 DECIMAL(22,2)
192

193
	,TarifTipeTrip10 DECIMAL(22,2)
194

195
	,TarifTipeTrip11 DECIMAL(22,2)
196

197
	,TarifTipeTrip12 DECIMAL(22,2)
198

199
	,TarifTipeTrip13 DECIMAL(22,2)
200

201
	,TarifTipeTrip14 DECIMAL(22,2)
202

203
	,TarifTipeTrip15 DECIMAL(22,2)
204

205
	,TarifTipeTrip16 DECIMAL(22,2)
206

207
	,TarifTipeTrip17 DECIMAL(22,2)
208

209
	,TarifTipeTrip18 DECIMAL(22,2)
210

211
	,TarifTipeTrip19 DECIMAL(22,2)
212

213
	,TarifTipeTrip20 DECIMAL(22,2)
214

215
	,TotalTarifTripHino DECIMAL(22,2)
216

217
)
218

219

220

221
INSERT INTO @TblResult
222

223
SELECT DISTINCT md.EmployeeID, md.StartDate, md.TipeTrip01,  md.TipeTrip02,  md.TipeTrip03, md.TipeTrip04, md.TipeTrip05, md.TipeTrip06 
224

225
				,md.TipeTrip07 ,md.TipeTrip08 ,md.TipeTrip09 ,md.TipeTrip10 ,md.TipeTrip11 ,md.TipeTrip12 ,md.TipeTrip13
226

227
				,md.TipeTrip14 ,md.TipeTrip15 ,md.TipeTrip16 ,md.TipeTrip17 ,md.TipeTrip18 ,md.TipeTrip19 ,md.TipeTrip20
228

229
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip01 <> '' THEN md.TipeTrip01 ELSE '0' END) * tarif.TipeTrip01 AS TarifTipeTrip01
230

231
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip02 <> '' THEN md.TipeTrip02 ELSE '0' END) * tarif.TipeTrip02 AS TarifTipeTrip02
232

233
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip03 <> '' THEN md.TipeTrip03 ELSE '0' END) * tarif.TipeTrip03 AS TarifTipeTrip03
234

235
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip04 <> '' THEN md.TipeTrip04 ELSE '0' END) * tarif.TipeTrip04 AS TarifTipeTrip04
236

237
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip05 <> '' THEN md.TipeTrip05 ELSE '0' END) * tarif.TipeTrip05 AS TarifTipeTrip05
238

239
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip06 <> '' THEN md.TipeTrip06 ELSE '0' END) * tarif.TipeTrip06 AS TarifTipeTrip06
240

241
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip07 <> '' THEN md.TipeTrip07 ELSE '0' END) * tarif.TipeTrip07 AS TarifTipeTrip07
242

243
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip08 <> '' THEN md.TipeTrip08 ELSE '0' END) * tarif.TipeTrip08 AS TarifTipeTrip08
244

245
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip09 <> '' THEN md.TipeTrip09 ELSE '0' END) * tarif.TipeTrip09 AS TarifTipeTrip09
246

247
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip10 <> '' THEN md.TipeTrip10 ELSE '0' END) * tarif.TipeTrip10 AS TarifTipeTrip10
248

249
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip11 <> '' THEN md.TipeTrip11 ELSE '0' END) * tarif.TipeTrip11 AS TarifTipeTrip11
250

251
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip12 <> '' THEN md.TipeTrip12 ELSE '0' END) * tarif.TipeTrip12 AS TarifTipeTrip12
252

253
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip13 <> '' THEN md.TipeTrip13 ELSE '0' END) * tarif.TipeTrip13 AS TarifTipeTrip13
254

255
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip14 <> '' THEN md.TipeTrip14 ELSE '0' END) * tarif.TipeTrip14 AS TarifTipeTrip14
256

257
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip15 <> '' THEN md.TipeTrip15 ELSE '0' END) * tarif.TipeTrip15 AS TarifTipeTrip15
258

259
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip16 <> '' THEN md.TipeTrip16 ELSE '0' END) * tarif.TipeTrip16 AS TarifTipeTrip16
260

261
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip17 <> '' THEN md.TipeTrip17 ELSE '0' END) * tarif.TipeTrip17 AS TarifTipeTrip17
262

263
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip18 <> '' THEN md.TipeTrip18 ELSE '0' END) * tarif.TipeTrip18 AS TarifTipeTrip18
264

265
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip19 <> '' THEN md.TipeTrip19 ELSE '0' END) * tarif.TipeTrip19 AS TarifTipeTrip19
266

267
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip20 <> '' THEN md.TipeTrip20 ELSE '0' END) * tarif.TipeTrip20 AS TarifTipeTrip20
268

269
				,(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip01 <> '' THEN md.TipeTrip01 ELSE '0' END) * tarif.TipeTrip01) +
270

271
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip02 <> '' THEN md.TipeTrip02 ELSE '0' END) * tarif.TipeTrip02) +
272

273
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip03 <> '' THEN md.TipeTrip03 ELSE '0' END) * tarif.TipeTrip03) +
274

275
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip04 <> '' THEN md.TipeTrip04 ELSE '0' END) * tarif.TipeTrip04) +
276

277
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip05 <> '' THEN md.TipeTrip05 ELSE '0' END) * tarif.TipeTrip05) +
278

279
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip06 <> '' THEN md.TipeTrip06 ELSE '0' END) * tarif.TipeTrip06) +
280

281
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip07 <> '' THEN md.TipeTrip07 ELSE '0' END) * tarif.TipeTrip07) +
282

283
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip08 <> '' THEN md.TipeTrip08 ELSE '0' END) * tarif.TipeTrip08) +
284

285
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip09 <> '' THEN md.TipeTrip09 ELSE '0' END) * tarif.TipeTrip09) +
286

287
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip10 <> '' THEN md.TipeTrip10 ELSE '0' END) * tarif.TipeTrip10) +
288

289
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip11 <> '' THEN md.TipeTrip11 ELSE '0' END) * tarif.TipeTrip11) +
290

291
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip12 <> '' THEN md.TipeTrip12 ELSE '0' END) * tarif.TipeTrip12) +
292

293
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip13 <> '' THEN md.TipeTrip13 ELSE '0' END) * tarif.TipeTrip13) +
294

295
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip14 <> '' THEN md.TipeTrip14 ELSE '0' END) * tarif.TipeTrip14) +
296

297
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip15 <> '' THEN md.TipeTrip15 ELSE '0' END) * tarif.TipeTrip15) +
298

299
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip16 <> '' THEN md.TipeTrip16 ELSE '0' END) * tarif.TipeTrip16) +
300

301
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip17 <> '' THEN md.TipeTrip17 ELSE '0' END) * tarif.TipeTrip17) +
302

303
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip18 <> '' THEN md.TipeTrip18 ELSE '0' END) * tarif.TipeTrip18) +
304

305
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip19 <> '' THEN md.TipeTrip19 ELSE '0' END) * tarif.TipeTrip19) +
306

307
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip20 <> '' THEN md.TipeTrip20 ELSE '0' END) * tarif.TipeTrip20) AS TotalTarifTripHino
308

309
FROM dbo.MDTRIPHINODUMPTRUCK  AS md 
310

311
LEFT JOIN @CTARIF AS tarif
312

313
	ON md.EmployeeID = tarif.EmployeeID
314

315
WHERE  md.EmployeeID = @EmployeeID
316

317
	AND (md.StartDate BETWEEN @StartDate AND @EndDate)
318

319

320

321
SELECT DISTINCT EmployeeID
322

323
				,SUM(TotalTarifTripHino) AS TotalTarifTripHino
324

325
FROM @TblResult
326

327
GROUP BY EmployeeID
    (1-1/1)