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

Откуда: Санкт-Петербург
Сообщений: 19
Есть поля нужно выбрать начало и завершение по полю sensor поле битовое смещение 8
и вывести в формате ?
Посему в процедуре там еще много расчетов

Strt_date End_date NAME TYPE TIME
2009-10-02 09:36:11 2009-10-02 09:58:11 NAV00006884571058 0 ~15мин
2009-10-02 09:07:28 2009-10-02 09:34:10 NAV00006884571058 1 ~20мин

NAME send_date sensor
NAV00006884571058 2009-10-02 09:58:11 0000
NAV00006884571058 2009-10-02 09:56:11 0000
NAV00006884571058 2009-10-02 09:54:11 0000
NAV00006884571058 2009-10-02 09:52:11 0000
NAV00006884571058 2009-10-02 09:50:11 0000
NAV00006884571058 2009-10-02 09:48:11 0000
NAV00006884571058 2009-10-02 09:46:11 0000
NAV00006884571058 2009-10-02 09:44:11 0000
NAV00006884571058 2009-10-02 09:42:11 0000
NAV00006884571058 2009-10-02 09:40:11 0000
NAV00006884571058 2009-10-02 09:38:11 0000
NAV00006884571058 2009-10-02 09:36:11 0000
NAV00006884571058 2009-10-02 09:34:10 000F
NAV00006884571058 2009-10-02 09:32:16 000C
NAV00006884571058 2009-10-02 09:32:04 000C
NAV00006884571058 2009-10-02 09:31:23 000C
NAV00006884571058 2009-10-02 09:31:08 000E
NAV00006884571058 2009-10-02 09:30:28 000C
NAV00006884571058 2009-10-02 09:30:12 000C
NAV00006884571058 2009-10-02 09:29:58 000C
NAV00006884571058 2009-10-02 09:29:46 000C
NAV00006884571058 2009-10-02 09:29:13 000C
NAV00006884571058 2009-10-02 09:29:03 000C
NAV00006884571058 2009-10-02 09:28:35 000C
NAV00006884571058 2009-10-02 09:28:28 000D
NAV00006884571058 2009-10-02 09:27:42 000C
NAV00006884571058 2009-10-02 09:27:31 000C
NAV00006884571058 2009-10-02 09:26:38 000C
NAV00006884571058 2009-10-02 09:25:57 000C
NAV00006884571058 2009-10-02 09:25:41 000C
NAV00006884571058 2009-10-02 09:25:23 000C
NAV00006884571058 2009-10-02 09:24:45 000C
NAV00006884571058 2009-10-02 09:24:31 000E
NAV00006884571058 2009-10-02 09:24:21 000C
NAV00006884571058 2009-10-02 09:24:10 000C
NAV00006884571058 2009-10-02 09:23:58 000C
NAV00006884571058 2009-10-02 09:23:47 000C
NAV00006884571058 2009-10-02 09:23:34 000E
NAV00006884571058 2009-10-02 09:22:59 000C
NAV00006884571058 2009-10-02 09:22:43 000C
NAV00006884571058 2009-10-02 09:20:52 000C
NAV00006884571058 2009-10-02 09:19:04 000C
NAV00006884571058 2009-10-02 09:18:00 000C
NAV00006884571058 2009-10-02 09:17:45 000C
NAV00006884571058 2009-10-02 09:17:28 000E
NAV00006884571058 2009-10-02 09:17:14 000C
NAV00006884571058 2009-10-02 09:16:55 000C
NAV00006884571058 2009-10-02 09:16:43 000C
NAV00006884571058 2009-10-02 09:16:31 000E
NAV00006884571058 2009-10-02 09:16:03 000C
NAV00006884571058 2009-10-02 09:15:47 000E
NAV00006884571058 2009-10-02 09:14:25 000C
NAV00006884571058 2009-10-02 09:14:08 000C
NAV00006884571058 2009-10-02 09:13:55 000C
NAV00006884571058 2009-10-02 09:11:55 000C
NAV00006884571058 2009-10-02 09:11:15 000C
NAV00006884571058 2009-10-02 09:09:15 001D
NAV00006884571058 2009-10-02 09:07:28 0003
NAV00006884571058 2009-10-02 09:07:18 0000
NAV00006884571058 2009-10-02 09:05:18 0000
NAV00006884571058 2009-10-02 09:03:18 0000
NAV00006884571058 2009-10-02 09:01:18 0000
NAV00006884571058 2009-10-02 08:59:18 0000
NAV00006884571058 2009-10-02 08:57:18 0000
NAV00006884571058 2009-10-02 08:55:18 0000
NAV00006884571058 2009-10-02 08:53:18 0000
NAV00006884571058 2009-10-02 08:51:18 0000
NAV00006884571058 2009-10-02 08:49:18 0000
NAV00006884571058 2009-10-02 08:47:18 0000
NAV00006884571058 2009-10-02 08:45:18 0000
NAV00006884571058 2009-10-02 08:43:18 0000
NAV00006884571058 2009-10-02 08:41:18 0000
NAV00006884571058 2009-10-02 08:39:18 0000
2 окт 09, 10:37    [7733190]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с процедурой новичку.....  [new]
aleks2
Guest
Для начала научись внятно излагать задачу. Телепаты в отпуску...
2 окт 09, 11:47    [7733827]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с процедурой новичку.....  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
начало и завершение по полю sensor поле битовое смещение 8


Честно говоря не совсем понятен алгоритм опредедения начала и завершения, как и алгоритм получения TYPE.
2 окт 09, 11:48    [7733833]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с процедурой новичку.....  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вам нужны непрерывные последовательности записей, где поле sensor имеет значения 0000 ?
2 окт 09, 11:52    [7733873]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с процедурой новичку.....  [new]
Solonsky
Member

Откуда: Санкт-Петербург
Сообщений: 19
да если 0000 то TYPE 0
если что-то другое TYPE 1
2 окт 09, 12:10    [7734016]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с процедурой новичку.....  [new]
aleks2
Guest
Вряд ли это поможет тредстартеру... но это самый быстрый из известных мне способов отыскания интервалов непрерывности...

declare @t table(id int identity primary key clustered, type bit, dt datetime)

insert @t(type, dt)
select cast(sensor as bit),  send_date 
FROM aTable 
ORDER BY send_date ASC

declare @b table(id int identity primary key clustered, type bit, dt datetime)

insert @b(type,dt)
select TOP 1 type,dt
from @t 
ORDER BY dt ASC 

insert @b(type,dt)
select t1.type,t1.dt
from @t t1 inner join @t t1
ON t1.id+1=t2.id
WHERE t1.type<>t2.type
ORDER BY dt ASC

insert @b(type,dt)
select TOP 1 type,dt
from @t 
ORDER BY dt DESC

select t1.dt as StartDate, t2.dt as StopDate
FROM @b t1 inner join @b t2
on t1.id+1=t2.id
order by StartDate
2 окт 09, 13:46    [7734970]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с процедурой новичку.....  [new]
Solonsky
Member

Откуда: Санкт-Петербург
Сообщений: 19
СПАСИБО :) почти все заработало за исключением того что нужна проверка на то что не просто 0000 а if cast(sensor as INT) = 0 остановка если нет движение...
2 окт 09, 15:02    [7735584]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить