Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/09/2010, 04:58
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ponderar valor entre dos fechas

con
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
y usando para unit WEEK, DAY, MONTH, etc.
Eso puede darte el número de semanas, días, meses, etc. entre las dos fechas
De todas formas, antes tienes que resolver algún otro problema: parece que para las fechas has usado campos de tipo varchar. Eso es un error. Deberías haber usado un campo date e introducir los datos con este formato 2010-05-30
Luego está el problema de la exactitud y si vas a contar 8 días como dos semanas o no, y también tendrás que resolver si vas a usar decimales a la hora de sacar los resultados o no.

La respuesta para sacar por semanas, en el caso de que ya hubieras incluido las fechas bien, sería algo así:
SELECT (valor/TIMESTAMPDIFF(WEEK,fechainicial,fechafinal)) res FROM tutabla
Esto te resta fecha y te da semanas completas y luego divide el valor por ese número de semanas. Tienes soluciones para sacar semanas incompletas, pero primero mira a ver si esto empieza a servirte.