Que alguien me explique
Publicado por Isaias (9 intervenciones) el 15/05/2019 00:39:55
Hola compañeros de MYSQL, soy neófito en este motor de base de datos, mi fuerte es SQL Server, me pasaron el siguiente codigo y tengo algunas dudas, espero me ayuden a despejarlas, Saludos
Entiendo que hace un INSERT y que si hay llaves duplicadas hace un UPDATE del campo horafin con el valor de ¿horafin?
Además que está haciendo un GROUP BY, supongo que es por el MAX(l.hora) as horaFin, pero lo curioso es que el GROUP BY lo hace por dos campos que no son mencionados en el SELECT: l.idUsuario, l.dato.
1
2
3
4
5
6
7
8
INSERT INTO ctelog_hist (dia, idUsuario, host, idWSS, horaIni, horaFin)
(SELECT h.dia, h.idUsuario, h.host, h.idWSS, h.horaIni, MAX(l.hora) as horaFin
FROM ctelog_hist h
JOIN log l ON l.dato = h.idWSS AND l.fecha = h.Dia AND l.operacion="{SCN}"
WHERE Dia = CURDATE()
AND l.hora IS NOT NULL
GROUP BY l.idUsuario, l.dato
) ON DUPLICATE KEY UPDATE horaFin = VALUES(horaFin);
Entiendo que hace un INSERT y que si hay llaves duplicadas hace un UPDATE del campo horafin con el valor de ¿horafin?
Además que está haciendo un GROUP BY, supongo que es por el MAX(l.hora) as horaFin, pero lo curioso es que el GROUP BY lo hace por dos campos que no son mencionados en el SELECT: l.idUsuario, l.dato.
Valora esta pregunta


0