Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вопрос по запросу со временем  [new]
Ol4
Member

Откуда:
Сообщений: 5
Есть данные по времени, начало действия и конец в виде чч:мм:сс
Начало Конец
12:28:48 12:29:19
12:31:01 12:33:07
13:33:46 13:41:57
15:29:54 15:33:31
16:47:19 16:49:19


SELECT     OlCard_id, BeginTime, EndTime
FROM         tblCardH

Нужно из начала времени отнять конец предыдущего времени, т.е. 12:31:01 - 12:29:19

И получить следующее:
Начало Конец Промежуток
12:28:48 12:29:19 00:00:16
12:31:01 12:33:07 00:01:42
13:33:46 13:41:57 01:00:39
15:29:54 15:33:31 01:47:57
16:47:19 16:49:19 01:13:48


Подскажите как получить этот результат? Или какой функцией можно воспользоваться?
28 июл 11, 15:42    [11040260]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
Raoul
Member

Откуда:
Сообщений: 177
DATEDIFF?
28 июл 11, 15:46    [11040281]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
yado4eg
Member

Откуда:
Сообщений: 202
Ol4,

SELECT     ol_id, OlCard_id, BeginTime, EndTime, datediff(mi, BeginTime, EndTime)
FROM         dbo.tblOutletCardH 

знакомые поля, таблицы.. ;)
28 июл 11, 16:27    [11040553]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
Ol4
Member

Откуда:
Сообщений: 5
yado4eg,

До боли знакомые))))
28 июл 11, 16:29    [11040562]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
yado4eg
Ol4,

SELECT     ol_id, OlCard_id, BeginTime, EndTime, datediff(mi, BeginTime, EndTime)
FROM         dbo.tblOutletCardH 

знакомые поля, таблицы.. ;)
Так ведь BeginTime и EndTime находятся в разных записях, а не в одной!
28 июл 11, 16:29    [11040567]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
yado4eg
Member

Откуда:
Сообщений: 202
iap,

это разные поля. а где собсна промах ?
28 июл 11, 16:32    [11040592]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
Ol4
Member

Откуда:
Сообщений: 5
yado4eg,

Только мне нужно отнимать от строики выше, не в одной строке
28 июл 11, 16:32    [11040595]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
yado4eg
Member

Откуда:
Сообщений: 202
Ol4
Только мне нужно отнимать от строики выше, не в одной строке

чёта подумал о расчёте длительности визита..
а если не секрет, зачем и что это будет ? в таблице все визиты в куче.
28 июл 11, 16:35    [11040613]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
Ol4
Member

Откуда:
Сообщений: 5
Это часть запроса, вообще это будет показывать за сколько времени ТП пролетает от одной ТТ в другую, этот промежуток я досчитываю в экселе, хотелось бы доработать этот запрос....
28 июл 11, 16:39    [11040644]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
yado4eg
Member

Откуда:
Сообщений: 202
Ol4
yado4eg,

Только мне нужно отнимать от строики выше, не в одной строке

select a.OlCard_id, a.BeginTime, b.EndTime, datediff(mi, a.BeginTime, b.EndTime) as [diff-ce]
from
(SELECT     OlCard_id, BeginTime, EndTime, row_number() over(order by BeginTime) as [rn]   
FROM         dbo.tblOutletCardH ) a
join 
(SELECT     OlCard_id, BeginTime, EndTime, row_number() over(order by BeginTime) as [rn]   
FROM         dbo.tblOutletCardH ) b on a.rn = b.rn - 1

извини не проверял.
28 июл 11, 16:41    [11040652]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
yado4eg
Member

Откуда:
Сообщений: 202
Ol4 ,

select a.Merch_id, a.OlCardDate, a.OlCard_id, a.BeginTime, b.EndTime, datediff(mi, a.BeginTime, b.EndTime) as [diff-ce]
from
(SELECT     merch_id, OlCardDate, OlCard_id, BeginTime, EndTime, row_number() over(partition by Merch_id, OlCardDate order by BeginTime) as [rn]   
FROM         dbo.tblOutletCardH ) a
join 
(SELECT     merch_id, OlCardDate,OlCard_id, BeginTime, EndTime, row_number() over(partition by Merch_id,OlCardDate  order by BeginTime) as [rn]   
FROM         dbo.tblOutletCardH ) b on a.rn = b.rn - 1

тоже не проверял. в целом можно "допилить".
28 июл 11, 16:46    [11040688]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу со временем  [new]
Ol4
Member

Откуда:
Сообщений: 5
yado4eg,

Ча буду пробовать, спс:))
28 июл 11, 16:51    [11040712]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить