Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.29;
Скачать: 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 вся ветка

Текущий архив: 2004.02.29;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.021 c
1-93860
Bannikov
2004-02-16 16:37
2004.02.29
Как скрыть property


3-93751
John S.
2004-02-04 12:25
2004.02.29
EnLib


3-93806
denis24
2004-02-04 18:21
2004.02.29
ParamByname( summa ).Asfloat:= 1.56


1-93958
Alex_DM
2004-02-16 17:37
2004.02.29
Проблемы при динамическом создании WebBrowser. Помогите!


3-93807
Анонимщик
2004-02-02 17:19
2004.02.29
Движок базы данных