Operando sobre la misma tabla no puedas sacar un registro en una columna de otro registro existente. tiene que generar dos consultas una con entradas y otra con salidas y luego las unes create view entradas as select userid, checktime as fechaen from tu_tabla where checktype='i' Otra Create view salidas As select userid, checktime as fechasal from tu_tabla where checktype='o' ahora unes las dos para ver los datos select userid, fechaent,fechasal from entradas inner join salidas on entradas.userid=salidas.userid Esto funciona si para cada usuario tienes solo una entrada y solo una salida. Si quieres que te devuelva las de cada día entonces en cada vista tienes que añadir campos como año, mes y día y realizar la unión por esos campos, de esa forma tendrás por ejemplo la hora de entrada y salida de cada día por cada usuario. Vete probando y me comentas el resultado.