tengo las dos tablas siguientes (con algunas datas más muestra)Combinar consultas en una consulta
registros:
ID | SETID | DATE ======================== 1 | 1 | 2010-02-25 2 | 2 | 2010-02-25 3 | 1 | 2010-02-26 4 | 2 | 2010-02-26 5 | 1 | 2010-02-27 6 | 2 | 2010-02-27 7 | 1 | 2010-02-28 8 | 2 | 2010-02-28 9 | 1 | 2010-03-01
Estadísticas:
ID | OBJECTID | FREQUENCY | STARTID | ENDID ============================================= 1 | 1 | 0.5 | 1 | 5 2 | 2 | 0.6 | 1 | 5 3 | 3 | 0.02 | 1 | 5 4 | 4 | 0.6 | 2 | 6 5 | 5 | 0.6 | 2 | 6 6 | 6 | 0.4 | 2 | 6 7 | 1 | 0.35 | 3 | 7 8 | 2 | 0.6 | 3 | 7 9 | 3 | 0.03 | 3 | 7 10 | 4 | 0.6 | 4 | 8 11 | 5 | 0.6 | 4 | 8 7 | 1 | 0.45 | 5 | 9 8 | 2 | 0.6 | 5 | 9 9 | 3 | 0.02 | 5 | 9
Cada día nuevos registros se analizaron en diferentes conjuntos de objetos y almacenados en la tabla LOGS. Entre otros procesos, algunas estadísticas se calculan en los objetos contenidos en estos conjuntos y el resultado se almacena en la tabla STATS. Estas estadísticas se calculan a través de varios registros (identificados por las columnas STARTID y ENDID).
Entonces, ¿cuál podría ser la consulta SQL que me daría las últimas estadísticas calculadas para todos los objetos con las fechas de registro correspondientes?
En el ejemplo dado, las filas de resultado sería:
OBJECTID | SETID | FREQUENCY | STARTDATE | ENDDATE ====================================================== 1 | 1 | 0.45 | 2010-02-27 | 2010-03-01 2 | 1 | 0.6 | 2010-02-27 | 2010-03-01 3 | 1 | 0.02 | 2010-02-27 | 2010-03-01 4 | 2 | 0.6 | 2010-02-26 | 2010-02-28 5 | 2 | 0.6 | 2010-02-26 | 2010-02-28
Por lo tanto, las más recientes estadísticas para conjunto 1 se calculan con los registros de FEB 27 a marchar 1 mientras que estadísticas para el conjunto 2 se calculan de FEB 26 a feb 28. objeto 6 no está en las filas de resultados ya que no hay estadísticas en él en el último período de tiempo.
Por último, uso MySQL.
¿Alguna idea?
+1 para una pregunta formulada claramente con buenos datos de muestra. –
¿Es su 0,35 para el objeto 4, 5 un error tipográfico? (debería ser 0.6?) – Patrick