У меня есть следующие две таблицы (с некоторыми образцами DATAS)Объединение запросов в один запрос
пиловочник:
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
СТАТИСТИКА:
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
Каждый день новые журналы анализируются на разные наборов объектов и хранится в таблице LOGS. Среди других процессов вычисляются некоторые статистические данные об объектах, содержащихся в этих наборах, и результат сохраняется в таблице STATS. Эти статистические данные вычисляются через несколько журналов (идентифицируются столбцами STARTID и ENDID).
Итак, что может быть SQL-запрос, который даст мне последнюю рассчитанную статистику для всех объектов с соответствующими датами журнала.
В данном примере, результат строка будет:
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
Таким образом, самыми последние статистики для набора 1 вычисляется с бревнами от 27 февраля до 1 марта, тогда как статистика для набора 2 вычисляется по 26 февраля, чтобы feb 28. объект 6 не находится в строках результатов, так как в течение последнего периода нет статистики.
Последнее, что я использую MySQL.
Любая идея?
+1 для четко сформулированного вопроса с хорошими данными образца. –
Является ли ваш 0.35 для объекта 4, 5 опечаткой? (это должно быть 0,6?) – Patrick