Вниз
Скачать: CL | DM;

Составление запроса с вычитанием одного поля из другого   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.52 MB
Время: 0.017 c
8-94041
Urvin
2003-10-25 10:39
2004.02.29
Multimedia API


14-94147
Pavel
2004-02-08 17:14
2004.02.29
Windows messages


8-94040
Junior
2003-10-25 13:43
2004.02.29
Построение графика динамически


1-93981
Aliev
2004-02-17 12:27
2004.02.29
Как делать что все формы были на таскбаре?


8-94033
Вера
2003-10-29 11:35
2004.02.29
Image




   Наверх