Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2013, 17:07   #1
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
Вопрос Помогите составить SQL запрос с вычислением

Есть таблица след. вида:
| время | id операции | статус операции (запрос / ответ (у каждой операции в запросе и ответе одинаковый id)) |

необходимо составить SQL запрос, который бы выводил список операций(id) и среднее время прохождения каждого запроса (время отправки запроса минус время получения ответа)

Последний раз редактировалось Gift020; 08.10.2013 в 17:15.
Gift020 вне форума Ответить с цитированием
Старый 08.10.2013, 17:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Поищи функцию datediff() она по идее должна разницу между датами возвращать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.10.2013, 17:29   #3
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
По умолчанию

select id, max(operation_time) - min(operation_time) from my_table group by id
- у меня вышло как-то так, однако данный запрос делает не совсем то, что надо

он выводит id первой операции и разницу между временем ответа самой последней операции и временем самого первого запроса, а необходим полный список операций с их временем прохождения
Gift020 вне форума Ответить с цитированием
Старый 09.10.2013, 04:06   #4
simples
Форумчанин
 
Регистрация: 03.10.2013
Сообщений: 142
По умолчанию

Вам надо 2 запроса склеить JOIN'ом.
Первый запрос - начало операции.
Второй - конец операции.
Клеить по ИД операции.
simples вне форума Ответить с цитированием
Старый 09.10.2013, 10:47   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Gift020 Посмотреть сообщение
select id, max(operation_time) - min(operation_time) from my_table group by id
- у меня вышло как-то так, однако данный запрос делает не совсем то, что надо

он выводит id первой операции и разницу между временем ответа самой последней операции и временем самого первого запроса, а необходим полный список операций с их временем прохождения
Если при ответе на запрос ID операции такое же, как в запросе, тогда попробуйте так:

Код:
select id, id_operation,   max(operation_time) - min(operation_time) from my_table group by id,  id_operation
иначе, давайте пример данных (десятка записей в примере будет достаточно) и что Вы из них хотите получить.

p.s. и СУБД неплохо указывать.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.10.2013, 13:33   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
select start.id, finish.time - start.time as calctime
from t as start 
left join t as finish on start.id =finish.id and finish.status ='ответ'
where start.status ='запрос'
Код:
select start.id, finish.time - start.time as calctime
from ( select id, time from t where status='запрос') as start 
left join ( select id, time from t where status=='ответ' ) as finish on start.id=finish.id
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 09.10.2013 в 13:36.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу составить SQL-запрос helpkz SQL, базы данных 36 04.04.2013 16:10
Как составить SQL запрос на удаление записей Dux БД в Delphi 2 19.02.2013 23:36
SQL-запрос с вычислением поля lyle_200490 SQL, базы данных 3 03.04.2011 15:59
SQL-запрос с вычислением поля lyle_200490 БД в Delphi 1 03.04.2011 13:41
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12