Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Se puede usar IF?

Estas en el tema de Se puede usar IF? en el foro de Mysql en Foros del Web. Sigo con la consulta anterior para profundizar un poco mas. Tengo dos tablas: Empleados y Cronos relacionadas por numero de tarjeta. La tabla cronos tiene ...
  #1 (permalink)  
Antiguo 03/12/2007, 15:28
Avatar de ss007  
Fecha de Ingreso: marzo-2002
Mensajes: 205
Antigüedad: 22 años, 1 mes
Puntos: 0
Pregunta Se puede usar IF?

Sigo con la consulta anterior para profundizar un poco mas.

Tengo dos tablas: Empleados y Cronos relacionadas por numero de tarjeta.

La tabla cronos tiene un campo llamado Comando cuya datos pueden variar de 11 a 21, donde 11 es entrada y 21 es salida. Para ambos casos tengo que usar MIN y MAX ya que en un mismo dia tengo varias entradas y salidas pero solo me sirve la primera entrada y la ultima salida.
Ahora bien, necesito que la consulta muestre tanto la hora de entrada, como la hora de salida de un mismo dia:

TARJETA - FECHA - HORA ENTRADA - HORA SALIDA

Por ahora solo logre que me mostrara o la entrada o la salida
Código:
SELECT cronos.Tarjeta, personal.Apellido, cronos.Fecha, MIN(cronos.hora)
FROM personal INNER JOIN cronos ON personal.tarjeta = cronos.Tarjeta
WHERE cronos.Comando=11
GROUP BY cronos.Tarjeta,cronos.Fecha
ORDER BY cronos.Tarjeta, cronos.fecha
o la salida
Código:
SELECT cronos.Tarjeta, personal.Apellido, cronos.Fecha, MAX(cronos.hora)
FROM personal INNER JOIN cronos ON personal.tarjeta = cronos.Tarjeta
WHERE cronos.Comando=21
GROUP BY cronos.Tarjeta,cronos.Fecha
ORDER BY cronos.Tarjeta, cronos.fecha
Espero que se entienda...
Gracias
__________________
MonaS
  #2 (permalink)  
Antiguo 03/12/2007, 19:05
Avatar de ss007  
Fecha de Ingreso: marzo-2002
Mensajes: 205
Antigüedad: 22 años, 1 mes
Puntos: 0
Exclamación Re: Se puede usar IF?

Voy a tratar de aclarar un poco porque realmente necesito ayuda...

Tengo una tabla Personal con los campos:

Código:
Tarjeta    Apellido
  3       Perez
  4       Gonzalez
Otra tabla Cronos

Código:
Comando     Tarjeta        Fecha               Hora
   11            3        2007/12/01        09:00:00
   21            3        2007/12/01        12:30:00
   11            3        2007/12/01        14:00:00
   21            3        2007/12/01        18:00:00
Como veran en un mismo dia tiene varias entradas y salidas.
Mediante una consulta logro agrupar por fecha y que me arroje la hora minima y en otra consulta la hora maxima.

Pero lo que necesito es me me muestre lo siguiente:

Código:
Tarjeta    Nombre         Fecha          Hora Entrada      Hora Salida
   3       Perez        2007/12/01       09:00:00             18:00:00
Espero que puedan ayudarme... o decirme si esto es imposible
Gracias
__________________
MonaS

Última edición por ss007; 03/12/2007 a las 22:45 Razón: nadie contesta
  #3 (permalink)  
Antiguo 04/12/2007, 00:56
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Se puede usar IF?

bueno no se como se llaman tus tablas pero yo use personas para la pimera y tarjetas para la segunda, deberias corregir las mayusculas por cuesiotnes de tiempos las puse asi nomas, pero esto deberia resolver tu problema, si no resuelve dejame los resultados q te deja y lo reveemos

select p.tarjeta, p.apellido, t.fecha, min(t.hora), max(t.hora)
from personas p join tarjetas t on p.tarjeta=t.tarjeta
group by p.tarjeta, p.nombre, t.fecha


saludos espeor q ande :P
__________________
Degiovanni Emilio
developtus.com
  #4 (permalink)  
Antiguo 04/12/2007, 08:42
Avatar de ss007  
Fecha de Ingreso: marzo-2002
Mensajes: 205
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: Se puede usar IF?

Funciono !!!!

Muchisimas gracias!!!

Ups! pero me queda un problema... Que pasaria si la salida es despues de las 12 de la noche??
__________________
MonaS

Última edición por ss007; 04/12/2007 a las 08:51
  #5 (permalink)  
Antiguo 04/12/2007, 11:06
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Se puede usar IF?

entonces esta mal planteada la tabla
__________________
Degiovanni Emilio
developtus.com
  #6 (permalink)  
Antiguo 04/12/2007, 12:52
Avatar de ss007  
Fecha de Ingreso: marzo-2002
Mensajes: 205
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: Se puede usar IF?

Ups! Me desconcertaste... Seria posible aclararme un poco...


Gracias
__________________
MonaS
  #7 (permalink)  
Antiguo 04/12/2007, 16:49
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Se puede usar IF?

no se para q usas el campo "comando" pero si ahi es donde marcas el tipo de tarea
podrias utulizar por ejemplo el valor 1 para iniciar la jornada laboral y el 2 para cuando la termina, entoences la hora minima seria el comando 1 y la maxima el coamndo 2

capichi?
__________________
Degiovanni Emilio
developtus.com
  #8 (permalink)  
Antiguo 04/12/2007, 19:06
Avatar de ss007  
Fecha de Ingreso: marzo-2002
Mensajes: 205
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: Se puede usar IF?

Cita:
no se para q usas el campo "comando" pero si ahi es donde marcas el tipo de tarea
podrias utulizar por ejemplo el valor 1 para iniciar la jornada laboral y el 2 para cuando la termina, entoences la hora minima seria el comando 1 y la maxima el coamndo 2
Justamente el comando no es la tarea sino que 11 es entrada y 21 es salida, no es determinado por mi, sino que es una importacion.

Por lo tanto el valor 11 indica el inicio de la jornada laboral y 21 la finalizacion.
Con esta seleccion:
Código:
select p.tarjeta, p.apellido, t.fecha, min(t.hora), max(t.hora)
from personas p join tarjetas t on p.tarjeta=t.tarjeta
group by p.tarjeta, p.nombre, t.fecha
si alguien sale despues de las 12 de la noche, me da como hora minima la salida del dia anterior ya que en ningun lugar estoy condicionando con el campo comando.

Espero puedas entenderme...
Gracias
__________________
MonaS
  #9 (permalink)  
Antiguo 04/12/2007, 21:42
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Se puede usar IF?

dios mio se puso complicada vas a tener q poner un campo autoincremental como un id para sacar de ahi el mayor id del dia q tenga codigo 21, realmente esoty muy cansado ahora como para pensar la sql q funcione

fijate si podes
__________________
Degiovanni Emilio
developtus.com
  #10 (permalink)  
Antiguo 05/12/2007, 21:37
Avatar de ss007  
Fecha de Ingreso: marzo-2002
Mensajes: 205
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: Se puede usar IF?

Gracias por tu esfuerzo Emilio, de todas maneras, me has sido de mucha ayuda.

Vere como resolverlo...
__________________
MonaS
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:11.