можно подсчитать время с определенным интервалом времени ...

NOOBик
Дата: 21.12.2011 12:24:36
Добрый день.
Кто может подсказать, есть ли такая возможность вот что зделать.
Есть таблица, в которую вносятся данные в поля, "начало", "конец", "интервал".
В "начало" вносится час, например 9:00, "конец" - 19:00, а в "интервал" - 00:30 мин. все поля "Краткий формат времени" Вот, это все должно выводиться в таком виде:
9:00
9:30
10:00 и т.д. до "конец" то-есть до 19:00
и эта сумма будет сверяться уже внесенными часами во второй Талице и выводить должно те ​​часы которые еще ​​не использовались.
можно ли как-то такое сделать???
думаю что такое еще никому не приходилось делать (((
есть ли какие варианты ..??((
stigid
Дата: 21.12.2011 12:47:58
NOOBик
В "начало" вносится час, например 9:00, "конец" - 19:00, а в "интервал" - 00:30 мин. все поля "Краткий формат времени" Вот, это все должно выводиться в таком виде:
9:00
9:30
10:00 и т.д. до "конец" то-есть до 19:00
SELECT (D2.digit & D1.digit & D0.digit) * интервал + начало As t
FROM Т, Digits AS D0, Digits AS D1, Digits AS D2
WHERE (D2.digit & D1.digit & D0.digit) * интервал + начало <= конец

Запрос Digits здесь
Sator Arepo
Дата: 21.12.2011 12:53:18
Достаточно хранить либо сочетание "начало", "конец", либо "начало", "интервал".
Т.к. хранение всех трех атрибутов нарушает 2-ю нормальную форму. А делать этого не стоит, если не хотите решать искусственно созданные трудности.
А получить 3-е значение на основании двух можно всегда несложным запросом.
stigid
Дата: 21.12.2011 13:14:43
stigid, условие в WHERE лучше задать так
...
WHERE CInt(D2.digit & D1.digit & D0.digit) <= CInt((конец-начало)/интервал)
bubucha
Дата: 21.12.2011 13:31:34
Sator Arepo
А получить 3-е значение на основании двух можно всегда несложным запросом.

Получать не надо, судя по задаче он задается . В задаче ТС все три поля нужны.
Если есть начало и интервал - как узнать где конец?
Если есть начало и конец - как узнать интервал?
Если есть конец и интервал - как узнать начало?
NOOBик
Дата: 21.12.2011 13:32:02
Sator Arepo,

спасибо за ответ.
к сожалению, должны быть три поля, начало, конец и интервал, так как эти поля закреплены за кабинетами в которых могут по разному быть время работы и интервал
NOOBик
Дата: 21.12.2011 13:33:59
bubucha,

так так. правильный ход мыслей
Sator Arepo
Дата: 21.12.2011 13:40:42
NOOBик
Sator Arepo,

спасибо за ответ.
к сожалению, должны быть три поля, начало, конец и интервал, так как эти поля закреплены за кабинетами в которых могут по разному быть время работы и интервал

Да, я невнимательно прочитал. Теперь я вижу, что "интеравал" не зависит от начала и конца, это так?
NOOBик
Дата: 21.12.2011 13:47:34
Sator Arepo
NOOBик
Sator Arepo,

спасибо за ответ.
к сожалению, должны быть три поля, начало, конец и интервал, так как эти поля закреплены за кабинетами в которых могут по разному быть время работы и интервал

Да, я невнимательно прочитал. Теперь я вижу, что "интеравал" не зависит от начала и конца, это так?


да, это так)
NOOBик
Дата: 21.12.2011 15:54:46
SELECT (D2.digit & D1.digit & D0.digit) * интервал + начало As t
FROM Т, Digits AS D0, Digits AS D1, Digits AS D2
WHERE (D2.digit & D1.digit & D0.digit) * интервал + начало <= конец

[/src]
Запрос Digits здесь[/quot]

выдает ошыбку((((
"Проверьте синтаксис и заключите подчиненный запрос в скобки."
разное перепробувал((