Форум: "Базы";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизСоставление запроса с вычитанием одного поля из другого Найти похожие ветки
← →
gonzales (2004-02-03 15:18) [0]Доброе время суток!
Работаю с BDE и столкнулся с проблемой. Имеется таблица с полями даты, необходимо составить запрос, в котором автоматом одна дата вычиталась из другой, а в идеале еще и усреднялась.
что-то типа select field2-field1 where field3=text. Но не знаю как оформить
← →
Johnmen (2004-02-03 15:20) [1]>одна дата вычиталась из другой
Что получим в разности ? :))))))))))
← →
Ann (2004-02-03 15:20) [2]а вычисляемые поля не подойдут?
← →
gonzales (2004-02-03 15:21) [3]опять же дату. Tditetime1-tditetime2
← →
gonzales (2004-02-03 15:21) [4]вычисляемые поля это как?
← →
Mike Kouzmine (2004-02-03 15:22) [5]gonzales © (03.02.04 15:21) [3] 1 апреля 1998 года - 2 сентября 1675 года = ?
← →
HSolo (2004-02-03 15:23) [6]???
(30 января 2004 г. - 12 декабря 2003 г.) - это какая дата?
← →
Sandman25 (2004-02-03 15:24) [7]avg(cast((date1-date2) as float))
в результате имеем среднюю длину интервала в днях.
← →
gonzales (2004-02-03 15:24) [8]идея вот такая. В базе содержатсязаписи с времемем начала и конца выполнения операции. Необходимо найти среднее. записей около 2000 шт. Крайне не хотелось бы использовать перебор
← →
Тимохов (2004-02-03 15:24) [9]
> Mike Kouzmine © (03.02.04 15:22) [5]
Вроде как количество дней...
← →
gonzales (2004-02-03 15:24) [10]avg(cast((date1-date2) as float)) - совершенно верно
← →
gonzales (2004-02-03 15:25) [11]только как теперь грамотный запрос составить
← →
Mike Kouzmine (2004-02-03 15:25) [12]Тимохов © (03.02.04 15:24) [9] Может быть. Но требуется TDateTime.
← →
gonzales (2004-02-03 15:28) [13]в принципе требуется количество минут, секунд, дней, и т.д. В общем-то tdatetime - это кол-во дней и есть
← →
gonzales (2004-02-03 15:29) [14]вот и вопрос, можно ли организовать это в одном запросе
← →
Sandman25 (2004-02-03 15:36) [15][14] gonzales © (03.02.04 15:29)
В чем проблема
select field1, field2, cast(...)
from table1
group by field1, field2
???
← →
Sandman25 (2004-02-03 15:36) [16]group by даже не надо.
← →
Sandman25 (2004-02-03 15:36) [17]select avg()
from table
← →
gonzales (2004-02-03 15:38) [18]а что будет результатом запроса?
← →
Sandman25 (2004-02-03 15:41) [19][18] gonzales © (03.02.04 15:38)
Вы бы написали, что Вам нужно?
Если только среднее значение,
то select avg(..) from table.
← →
gonzales (2004-02-03 15:47) [20]да мне нужно среднее значение, но в таблице имеются записи, которые нужно еще и селектировать по определенному полу field3
:))
← →
gonzales (2004-02-03 15:52) [21]то есть запрос должен быть таким
select avg(cast((Query1.Fields[1]-Query1.Fields[2]) as float)) from table where Teh_oper=:Teh_oper;
← →
Johnmen (2004-02-03 15:52) [22]>да мне нужно среднее значение
среднее значение чего ??? какого типа ???
← →
gonzales (2004-02-03 15:59) [23]типа float, среднее значение разности времен, то есть среднее значение времени выполнения операции
← →
Тимохов (2004-02-03 16:01) [24]Блин, в чем вопрос, то вроде уже все ответили. Ты вроде сам даже написал "почти" запрос.
Что еще не понятно осталось?
← →
Johnmen (2004-02-03 16:01) [25]avg(dfinish-dstart)
← →
gonzales (2004-02-03 16:02) [26]Вот именно что "почти" запрос, не работает же:)))))
← →
Kinda (2004-02-03 16:12) [27]если нужно вычитать поля с датами не из одной записи
то нужна ХП (в IB/FB) с Paradox по-моему
можно ли организовать это в одном запросе
нет, надо делать несколько.
← →
gonzales (2004-02-03 16:17) [28]да вычитать поля нужно в тех записях, которые удовлетворяют критерию where ..., а таких записей может быть много.
← →
kinda (2004-02-03 16:25) [29]В одном запросе не получится,
сначала выбираешь то что, нужно,
а потом из результата выбираешь, вычитаешь, усредняешь и т.д.
идея понятна?
← →
gonzales (2004-02-03 17:03) [30]почему то не проходит avg,
неизвестная команда.
Может надо uses какой подключить
← →
Dedushka_Mazai (2004-02-03 17:05) [31]и куда ж ты его подключишь, интересно?
← →
Плохиш (2004-02-03 17:09) [32]
> gonzales © (03.02.04 17:03) [30]
> почему то не проходит avg,
> неизвестная команда.
> Может надо uses какой подключить
Ошибка в 17й строке
← →
gonzales (2004-02-03 17:15) [33]Ошибка в 17й строке???????
← →
Dedushka_Mazai (2004-02-03 17:22) [34]она и в 18-ю переползла уже. есть тенденция, что и до 19-й скоро доберётся
← →
Fay (2004-02-03 17:27) [35]8)
← →
Fay (2004-02-03 17:28) [36]на anekdot.ru скоро линк сюда повесят
← →
gonzales (2004-02-03 18:12) [37]Извините, что встреваю, но я и не подозревал, что тут сидят такие крутые профессионалы, просто ассы своего дела, которые не то, что запрос с ходу пишут, а еще успевают стебаться в стиле
"эй юниор, резче гребок, шире амплитуда"
ЗЫ. если нечего написать, не порть клавиатуру
Best Regards и все такое
← →
ЮЮ (2004-02-04 03:46) [38]> но я и не подозревал, что тут сидят такие крутые
Зато уверен, что все здесь читают твои мысли или сидят рядом с тобой за компом?
>gonzales © (03.02.04 16:02) [26] Вот именно что "почти" запрос, не работает же:)))))
>gonzales © (03.02.04 17:03) [30] почему то не проходит avg,
А привести текст запроса и ошибку слабо?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.014 c