-
Notifications
You must be signed in to change notification settings - Fork 0
/
vistas_miscelanea.sql
272 lines (213 loc) · 10.1 KB
/
vistas_miscelanea.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
CREATE TABLE usuarios (
id_usuarios SERIAL PRIMARY KEY,
nombre VARCHAR(45) NOT NULL,
apellidos VARCHAR(60) NOT NULL,
password VARCHAR(200) NOT NULL,
username VARCHAR(200) NOT NULL,
tipo VARCHAR(45) NOT NULL);
INSERT INTO usuarios
(nombre, apellidos, password, username, tipo)
VALUES ('Administrador', 'El que administra', '21232f297a57a5a743894a0e4a801fc3', 'admin', 'admin');
CREATE VIEW apertura_detalle AS
SELECT
uided.data AS Estado,
uido.data AS Convenio,
mc.fullname AS Diplomado,
uidnc.data AS CtroTrabajo
FROM
((((((mdl_user mu
JOIN mdl_user_info_data uided ON (((uided.userid = mu.id)
AND (uided.fieldid = 10))))
JOIN mdl_user_info_data uido ON (((uido.userid = mu.id)
AND (uido.fieldid = 20))))
JOIN mdl_user_info_data uidnc ON (((uidnc.userid = mu.id)
AND (uidnc.fieldid = 24))))
JOIN mdl_grade_grades mgg ON ((mgg.userid = mu.id)))
JOIN mdl_grade_items mgi ON ((mgi.id = mgg.itemid)))
JOIN mdl_course mc ON ((mc.id = mgi.courseid)))
GROUP BY mc.fullname , uido.data , uided.data , uidnc.data;
CREATE VIEW apertura_general AS
SELECT COUNT(mgg.userid) AS Cantidad, uided.data AS Estado,
(CASE WHEN ((mc.fullname LIKE '%Grupo A%') OR (mc.fullname LIKE '%Grupo B%'))
THEN 'Grupo A y B 1'
WHEN ((mc.fullname LIKE '%Grupo C%') OR (mc.fullname LIKE '%Grupo D%'))
THEN 'Grupo C y D 2'
WHEN ((mc.fullname LIKE '%Grupo E%') OR (mc.fullname LIKE '%Grupo F%'))
THEN 'Grupo E y F 3'
WHEN ((mc.fullname LIKE '%Grupo G%') OR (mc.fullname LIKE '%Grupo H%'))
THEN 'Grupo G y H 4'
WHEN ((mc.fullname LIKE '%Grupo M%') OR (mc.fullname LIKE '%Grupo N%'))
THEN 'Grupo M y N 5'
WHEN((mc.fullname LIKE '%Grupo O%') OR (mc.fullname LIKE '%Grupo P%'))
THEN 'Grupo O y P 6'
ELSE 'Grupo No Encontrado'
END) AS GrupoApertura,
uidnc.data AS CtroTrabajo
FROM mdl_user mu
JOIN mdl_user_info_data uided ON (uided.userid = mu.id AND uided.fieldid = 10)
JOIN mdl_user_info_data uidnc ON (uidnc.userid = mu.id AND uidnc.fieldid = 24)
JOIN mdl_grade_grades mgg ON (mgg.userid = mu.id)
JOIN mdl_grade_items mgi ON (mgi.id = mgg.itemid)
JOIN mdl_course mc ON (mc.id = mgi.courseid)
GROUP BY mgg.userid , GrupoApertura, Estado, CtroTrabajo;
CREATE VIEW v_alumno_avance AS
SELECT
mgg.itemid AS itemid,
mgg.userid AS userid,
mgi.courseid AS courseid,
(mgi.aggregationcoef * 100) AS avance,
(ROUND(mgg.finalgrade, 2) * ROUND(mgi.aggregationcoef, 2)) AS calificacion
FROM
mdl_grade_grades mgg
JOIN mdl_grade_items mgi ON (mgi.id = mgg.itemid)
JOIN mdl_user_info_data id ON (id.userid = mgg.userid AND id.fieldid = 1);
CREATE VIEW v_alumno_detalle AS
SELECT DISTINCT
mu.id AS userid,
mu.username AS Usuario,
idpw.data AS Contrasenia,
idcv.data AS Convenio,
CONCAT(mu.firstname, ' ', mu.lastname) AS NombComp,
mu.email AS CorreoE,
mu.phone1 AS phone1,
mu.phone2 AS phone2,
ide.data AS Estado,
idcvct.data AS ClvCentroTrabajo,
idct.data AS CentroTrabajo,
idnvct.data AS NvlCentroTrabajo,
(now() - to_timestamp(ulac.timeaccess)) AS DiasSinIngresar,
(case when mu.lastaccess = '0' then 'NO' else 'SI' end) AS IngresoPlataforma,
(case when idedpg.data = '0' then 'NO' else 'SI' end) AS EstPago,
mg.name AS Grupo,
mc.fullname AS Diplomado,
(CASE
WHEN ((mc.fullname LIKE '%Grupo A%') OR (mc.fullname LIKE '%Grupo B%'))
THEN 'Grupo A y B 1'
WHEN ((mc.fullname LIKE '%Grupo C%') OR (mc.fullname LIKE '%Grupo D%'))
THEN 'Grupo C y D 2'
WHEN ((mc.fullname LIKE '%Grupo E%') OR (mc.fullname LIKE '%Grupo F%'))
THEN 'Grupo E y F 3'
WHEN ((mc.fullname LIKE '%Grupo G%') OR (mc.fullname LIKE '%Grupo H%'))
THEN 'Grupo G y H 4'
WHEN ((mc.fullname LIKE '%Grupo M%') OR (mc.fullname LIKE '%Grupo N%'))
THEN 'Grupo M y N 5'
WHEN ((mc.fullname LIKE '%Grupo O%') OR (mc.fullname LIKE '%Grupo P%'))
THEN 'Grupo O y P 6'
ELSE 'Grupo No Encontrado'
END) AS GrupoApertura,
to_timestamp(mc.startdate) AS FechaApertura
FROM mdl_user mu
JOIN mdl_user_info_data idpw ON (idpw.userid = mu.id AND idpw.fieldid = 23)
JOIN mdl_user_info_data idcv ON (idcv.userid = mu.id AND idcv.fieldid = 20)
JOIN mdl_user_info_data ide ON (ide.userid = mu.id AND ide.fieldid = 10)
JOIN mdl_user_info_data idcvct ON (idcvct.userid = mu.id AND idcvct.fieldid = 17)
JOIN mdl_user_info_data idct ON (idct.userid = mu.id AND idct.fieldid = 18)
JOIN mdl_user_info_data idnvct ON (idnvct.userid = mu.id AND idnvct.fieldid = 24)
JOIN mdl_user_info_data idedpg ON (idedpg.userid = mu.id AND idedpg.fieldid = 22)
JOIN mdl_grade_grades mgg ON (mgg.userid = mu.id)
JOIN mdl_grade_items mgi ON (mgi.id = mgg.itemid)
JOIN mdl_course mc ON (mc.id = mgi.courseid)
JOIN mdl_user_lastaccess ulac ON (ulac.userid = mu.id AND ulac.courseid = mc.id)
JOIN mdl_groups mg ON (mg.courseid = mc.id)
JOIN mdl_groups_members mgm ON (mgm.groupid = mg.id AND mgm.userid = mu.id)
ORDER BY mg.name;
CREATE VIEW v_cursos AS
SELECT
SUBSTR(mdl_groups.name, 1, 7) AS grupo,
mdl_groups.courseid AS id_curso
FROM mdl_groups
WHERE ((CHAR_LENGTH(SUBSTR(mdl_groups.name, 1, 7)) = 7) AND (mdl_groups.courseid NOT IN (1 , 4, 11)))
GROUP BY mdl_groups.courseid , SUBSTR(mdl_groups.name, 1, 7)
ORDER BY mdl_groups.courseid;
CREATE VIEW v_get_cursos AS
SELECT SUBSTR(mdl_groups.name, 1, 7) AS grupo, mdl_groups.courseid AS id_curso
FROM mdl_groups
WHERE
((CHAR_LENGTH(SUBSTR(mdl_groups.name, 1, 7)) = 7) AND (mdl_groups.courseid NOT IN (1 , 4, 11)))
GROUP BY SUBSTR(mdl_groups.name, 1, 7), id_curso
ORDER BY SUBSTR(mdl_groups.name, 1, 7);
CREATE VIEW v_insignia_birrete AS
SELECT mbi.userid AS userid, mb.name AS birrete, mb.courseid AS courseid
FROM mdl_badge_issued mbi
JOIN mdl_badge mb ON (mb.id = mbi.badgeid AND mb.name LIKE '%birrete%');
CREATE VIEW v_insignia_bronce AS
SELECT
mbi.userid AS userid,
mb.name AS bronce,
mb.courseid AS courseid
FROM mdl_badge_issued mbi
JOIN mdl_badge mb ON (mb.id = mbi.badgeid AND mb.name LIKE '%bronce%');
CREATE VIEW v_insignia_mouse AS
SELECT mbi.userid AS userid, mb.name AS mouse, mb.courseid AS courseid
FROM mdl_badge_issued mbi
JOIN mdl_badge mb ON (mb.id = mbi.badgeid AND mb.name LIKE '%mouse%');
CREATE VIEW v_insignia_oro AS
SELECT mbi.userid AS userid, mb.name AS oro, mb.courseid AS courseid
FROM mdl_badge_issued mbi
JOIN mdl_badge mb ON (mb.id = mbi.badgeid AND mb.name LIKE '%oro%');
CREATE VIEW v_insignia_plata AS
SELECT mbi.userid AS userid, mb.name AS plata, mb.courseid AS courseid
FROM mdl_badge_issued mbi
JOIN mdl_badge mb ON (mb.id = mbi.badgeid AND mb.name LIKE '%plata%');
CREATE VIEW v_insignia_platino AS
SELECT
mbi.userid AS userid,
mb.name AS platino,
mb.courseid AS courseid
FROM mdl_badge_issued mbi
JOIN mdl_badge mb ON (mb.id = mbi.badgeid AND mb.name LIKE '%platino%');
CREATE VIEW v_total_insignias AS
SELECT mbi.userid AS userid, mb.courseid AS courseid, COUNT(mbi.badgeid) AS total
FROM mdl_course mc
JOIN mdl_badge mb ON (mb.courseid = mc.id)
JOIN mdl_badge_issued mbi ON (mbi.badgeid = mb.id)
GROUP BY mbi.userid, courseid;
CREATE VIEW v_insignias AS
SELECT
CONCAT(mu.firstname, ' ', mu.lastname) AS NomComp,
mu.email AS Email,
idc.data AS Correo2,
mu.phone1 AS Tel1,
mu.phone2 AS Tel2,
ide.data AS Estado,
idct.data AS CentTrab,
idnv.data AS NivelCT,
SUM((mgg.finalgrade * mgi.aggregationcoef)) AS CalifObt,
mc.fullname AS Diplomado,
to_timestamp(mc.startdate) AS FechaApertura,
COALESCE(qtotal.total, 0) AS tTotal,
COALESCE(qbronce.bronce, 'NO') AS Bronce,
COALESCE(qplata.plata, 'NO') AS Plata,
COALESCE(qoro.oro, 'NO') AS Oro,
COALESCE(qplatino.platino, 'NO') AS Platino,
COALESCE(qbirrete.birrete, 'NO') AS Birrete,
COALESCE(qmouse.mouse, 'NO') AS Mouse
FROM mdl_role mr
JOIN mdl_role_assignments mrass ON (mrass.roleid = mr.id)
JOIN mdl_user mu ON (mrass.userid = mu.id)
JOIN mdl_user_info_data idc ON (idc.userid = mu.id AND idc.fieldid = 7)
JOIN mdl_user_info_data ide ON (ide.userid = mu.id AND ide.fieldid = 10)
JOIN mdl_user_info_data idct ON (mu.id = idct.userid AND idct.fieldid = 18)
JOIN mdl_user_info_data idnv ON (mu.id = idnv.userid AND idnv.fieldid = 24)
JOIN mdl_grade_grades mgg ON (mgg.userid = mu.id)
JOIN mdl_grade_items mgi ON (mgi.id = mgg.itemid)
JOIN mdl_course mc ON (mc.id = mgi.courseid)
LEFT JOIN v_insignia_platino qplatino ON (qplatino.userid = mu.id AND qplatino.courseid = mc.id)
LEFT JOIN v_insignia_oro qoro ON (qoro.userid = mu.id AND qoro.courseid = mc.id)
LEFT JOIN v_insignia_plata qplata ON (qplata.userid = mu.id AND qplata.courseid = mc.id)
LEFT JOIN v_insignia_bronce qbronce ON (qbronce.userid = mu.id AND qbronce.courseid = mc.id)
LEFT JOIN v_insignia_birrete qbirrete ON (qbirrete.userid = mu.id)
LEFT JOIN v_insignia_mouse qmouse ON (qmouse.userid = mu.id)
LEFT JOIN v_total_insignias qtotal ON (qtotal.userid = mu.id AND qtotal.courseid = mc.id)
WHERE ((mrass.roleid = 5) AND (mgi.itemtype = 'mod'))
GROUP BY mgg.userid, NomComp, Email, Correo2, Tel1, Tel2, Estado, CentTrab, NivelCT
,Diplomado, FechaApertura, tTotal, Bronce, Plata, Oro, Platino, Birrete, Mouse
ORDER BY mgg.userid;
CREATE VIEW v_item_curso AS
SELECT
gi.id AS itemid,
gi.itemname AS itemname,
gi.courseid AS id_curso
FROM mdl_grade_items gi
WHERE (gi.itemtype = 'mod')
ORDER BY gi.courseid , gi.id;