Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как считать время правильно
 
 автор: Andrew   (02.10.2006 в 16:00)
 
 

Проблем собственно две : 1 есть отчет. в отчете два столбца: машина и время машины в работе
зил1 5:10
зил2 6:00
ваз2 8:20
ваз2 14:00
итого - и вот тут отчет выводит всякий бред нипонятно как сложенный а должна (по этому примеру) 33:30
как заставить отчет выводить такое время - у меня никак неполучается
2 -я проблема : есть время включения бензинового генератора время выключения (норматив расхода топлива по времени работы) т.е расход=конец-начало* норматив например (17:30 -8:00) *5 =47.5
и вот тут я немогу правильно состыковать время а не 9.5 с этой нормой т.е. немогу правильно преобразовать тип данных - т.е. у меня конец-начало=0.395833333333333
может кто знает выход из этих проблем

  Ответить  
 
 автор: Силыч   (02.10.2006 в 16:01)   личное сообщение
 
 

datediff если мне не изменяют

  Ответить  
 
 автор: Аноним   (03.10.2006 в 09:20)
 
 

к сожалению с этим дайтедиффом не очень удобно работать - я там не сумел проссумировать правильно время >24 часов

  Ответить  
 
 автор: Explorer   (03.10.2006 в 09:35)   личное сообщение
 
 

с дэйтадифом работать достаточно удобно - он и придуман для того, чтобы оптимизировать работу со временны'ми интервалами...

в твоем случае - можешь привести интервалы к единице измерения меньшей степени дискретизации периода - к минутам, просуммировать периоды выраженные в этих единицах, привести к сумме выраженной в обычной нотации часы : минуты

REM>>

в сутках 24 часа
в часе 60 минут
в минуте 60 секунд

если в твоем примере интервал указан как мм:сс то сумма будет равна 310+360+500+840 = хххх секунд

приведи это обратно в минуты и секунды и получишь время работы оборудования

  Ответить  
 
 автор: Силыч   (03.10.2006 в 09:42)   личное сообщение
 
 

что значит неудобно?!
считайте в минутах.

в MS SQL вот так делал. тоже самое можно в Access только вместо Case-When использовать IIF

Определить пассажиров, которые больше других времени провели в полете.
Вывод: имя пассажира, время полета в минутах.

select p2.name,x.ss
from (select p.id_psg,
sum((case when t.time_out>t.time_in
then 1440-(abs(datediff(mi,t.time_out,t.time_in)))
else datediff(mi,t.time_out,t.time_in)
end)) ss
from trip t, pass_in_trip pt, passenger p
where t.trip_no=pt.trip_no and pt.id_psg=p.id_psg
group by p.id_psg
) x, passenger p2
where x.ss=(select max(y.ss) from (
select p.id_psg,
sum((case when t.time_out>t.time_in
then 1440-(abs(datediff(mi,t.time_out,t.time_in)))
else datediff(mi,t.time_out,t.time_in)
end)) ss
from trip t, pass_in_trip pt, passenger p
where t.trip_no=pt.trip_no
and pt.id_psg=p.id_psg
group by p.id_psg
) y)
and p2.id_psg=x.id_psg

  Ответить  
 
 автор: Explorer   (03.10.2006 в 09:57)   личное сообщение
 
 

>что значит неудобно?!


SELECT Sum(DateDiff("n",0,[YourFieldName])) AS MinutesInTotal FROM YourTableName;

  Ответить  
 
 автор: Andrew   (03.10.2006 в 10:03)
 
 

Сорри . разобрался - оказывается датедифф - удобен - просто немного хелп надо читать внимательней и переменные обнулять вовремя - извиняюсь исчто раз

  Ответить  
 
 автор: Силыч   (03.10.2006 в 11:26)   личное сообщение
 
 

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList