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

sería posible esta consulta?

Estas en el tema de sería posible esta consulta? en el foro de Mysql en Foros del Web. Hola amig@s!! Sería posible hacer una consulta en mysql que haiase el número de días pasados entre una fecha de inicio y una fecha de ...
  #1 (permalink)  
Antiguo 26/05/2010, 01:54
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
sería posible esta consulta?

Hola amig@s!!

Sería posible hacer una consulta en mysql que haiase el número de días pasados entre una fecha de inicio y una fecha de fin, comprobando que si la fecha de fin es null coja la actual?

Quiero decir, io estuve trabajando del 23 de enero de este año al 25 de marzo de este mismo año(eso se puede calcular). Pero, y si io volví a enganchar un trabajo el 4 de abril y aun no lo he finalizado(fecha = null)?? puedo en una misma consulta, agrupada por mi dni, calcular mi tiempo de experiencia laboral entre enero y hoy??

Si no es posible no tendré mas remedio que hacer varias consltas y calcular con php.

Gracias!!
  #2 (permalink)  
Antiguo 26/05/2010, 05:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: sería posible esta consulta?

Habria que ver exactamente la estructura que tienes... y luego decidir que es mas eficiente o facil.... usar las funciones de fecha que tiene mysql o usar programación externa sea php o lo que sea....

Seguramente necesitaras una consulta con subconsultas ....


De entrada la funcion de la base de datos es darte los datos, al mismo tiempo se pueden hacer calculos con ellos, por eso los motores de bbbdd incluyen funciones par hacer diversas cosas... aqui tendrias un primer problema estas funciones no suelen ser estandar con lo que la separación de capas te quedara tocada ya que una parte de tu negocio se "calculara" con la capa que en principio se debe dedicar a obtener datos de la bbdd... si un dia te ves forzado a cambiar de motor de bbdd tendras que reprogramar esa parte por que casi seguro que no será sql estandar....

A pesar de lo dicho mira las funcines de fecha que incluye mysql. (11.6. Date and Time Functions)

Tambien necesitaras IFNULL() para elegir la fecha actual...

Quim

Última edición por quimfv; 26/05/2010 a las 05:27
  #3 (permalink)  
Antiguo 26/05/2010, 15:28
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: sería posible esta consulta?

Muchas gracias quimfv, has aligerado mucho mi tarea.

Con lo que tú me has dicho he ahorrado una subconsulta en cada consulta de la categoría.

Ahora me surge otra gran duda.
Tengo 3 tablas, una de eias tiene todos los registro y las otras 2 tienen registros que siempre coinciden con la primera, pero no tienen que coincidir entre eios, aunque a veces sí que lo hacen.
Esto sería de la forma:
Código:
                        tabla2(campo1, campo2)
tabla1(campo1)
                        tabla3(campo1, campo3)
a mi me gustaría, a partir de tabla 1, mostrar todos los registros de tabla2 y tabla3 que cumpliesen un requisito. Tengo que decir que el campo del requisito varía de nombre en tabla2(campo2) y tabla3(campo3), pero los 2 contienen el mismo tipo de datos y la condición es la misma para ambos.
Lo único que he conseguido que me haga con inner join es que me saque el registro que cumple la condición y que además se encuentra en tabla2 y tabla3.
Cómo podría hacer esto??

Gracias de nuevo!!
  #4 (permalink)  
Antiguo 27/05/2010, 00:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: sería posible esta consulta?

Si solo varia el nombre podrias usar un union all o distinct


Select t1.campo1,t1.campo2 as segundo
from tabla1
WHERE t1.campo2=XXX
UNION ALL
Select t2.campo1,t2.campo3 as segundo
from tabla3
WHERE t2.campo3=XXX

????

Quim
  #5 (permalink)  
Antiguo 27/05/2010, 01:11
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: sería posible esta consulta?

Maravilloso quimfv.
Con obtener todos los registros que cumplan la condición en tabla 2 y tabla 3 hago un in(consuta_tabla2 union all consulta_tabla3 group by id ) de tabla 1 para sacar sólo esos registros.

Mil gracias de nuevo!!

Etiquetas: posible
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 15:34.