Доброе утро,
Я задаю вопрос с запросом. Я пытаюсь сделать сумму столбца в диапазоне времени UTC. Когда я запрашиваю только исходную таблицу с точными значениями UTC, она работает как ожидалось. Как только я добавлю в таблицу планирования дополнительную информацию, результаты будут неверными. Ниже приведены запросы и структуры таблиц, которые я использую. Любая помощь будет оценена по достоинству.
Запрос 1:
select logid,SUM(ti_availtime) as "Total Avail TIme"
from status
where logid = 12345
and status.starttime_utc
between 1528070400 and 1528102800
group by logid
logid Total Avail Time
12345 20106
Структура таблицы для таблицы состояния:
Date Logid Starttime_utc Ti_availtime Interval
2018-06-04 12345 1528070400 106 30
2018-06-04 12345 1528070401 5000 30
2018-06-04 12345 1528070402 5000 30
2018-06-04 12345 1528102800 10000 30
ПРИМЕЧАНИЕ. Значения UTC (1528070401, 1528070402) являются просто примерами *
Структура таблицы для расписания:
Date Logid Name Starttime_utc Stoptime_utc
2018-06-04 12345 John Smith 1528070400 1528102800
Запрос 2:
select schedule.Analyst, SUM(status.ti_availtime)
from status
join schedule on status.logid = schedule.logid
where schedule.logid = 30120 and status.starttime_utc between schedule.starttime_utc and schedule.starttime_utc
group by vqschedule.row_date
Результат:
Analyst Total Avail Time
John Smith 1351027
Полностью согласен с @jspcal и еще одна вещь в 1-м запросе вы указываете status.logid, но в 2-м графике проекта. Analyst, я просто пишу полный запрос
select status.logid, SUM(status.ti_availtime)
from status
join schedule on status.logid = schedule.logid
where schedule.logid = 30120 and status.starttime_utc between schedule.starttime_utc and schedule.stoptime_utc
group by status.logid
Первые группы запросов по status.logid
а вторая группа - по schedule.row_date
. И если эта ссылка schedule.stoptime_utc
в конце времени:
status.starttime_utc between schedule.starttime_utc and schedule.starttime_utc