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

Откуда:
Сообщений: 132
Добрый день,
есть такая таблица:

Event name start_time end_time
event tag1 eq1 prd7A 28 12-05-16 10:15 15-05-16 10:20
event tag1 eq1 prdB7 28 12-05-16 10:15 15-05-16 10:20
event tag1 eq1 prd6D 28 12-05-16 10:15 15-05-16 10:20
event tag1 eq2 prd9D 28 12-05-16 10:15 15-05-16 10:20
event tag2 eq3 prd2L 50 18-03-16 11:00 18-03-16 11:30
event tag2 eq3 prd5M 50 18-03-16 11:00 18-03-16 11:30
event tag2 eq5 prd3Q 70 19-03-16 12:00 19-03-16 12:45
event tag2 eq3 prd2L 50 18-03-16 11:44 18-03-16 11:55
event tag2 eq3 prd5M 50 18-03-16 11:44 18-03-16 11:55
event tag2 eq3 prd2L 50 20-03-16 11:00 20-03-16 11:40
event tag2 eq3 prd5M 50 20-03-16 11:00 20-03-16 11:40
event tag2 eq5 prd3Q 70 21-03-16 15:00 21-03-16 16:45
event tag2 eq3 prd2L 50 20-03-16 12:44 20-03-16 21:55
event tag2 eq3 prd5M 50 20-03-16 12:44 20-03-16 21:55


Хотелось бы получить следующее:

Event name start_time end_time
event tag1 eq1(prd7A prdB7 prd6D) eq2(prd9D) 12-05-16 10:15 15-05-16 10:20
event tag2 eq3(prd2L prd5M) 18-03-16 11:00 18-03-16 11:55
event tag2 eq5(prd3Q) 70 19-03-16 12:00 19-03-16 12:45
event tag2 eq3(prd2L prd5M) 20-03-16 11:00 20-03-16 11:40
event tag2 eq5(prd3Q) 70 21-03-16 15:00 21-03-16 16:45
event tag2 eq3(prd2L prd5M) 20-03-16 12:44 20-03-16 21:55


то есть, надо сгруппировать по tag и последнему числу в колонке Event name и записать как один Event,
также есть условие, что если продолжительность между двумя одинаковыми Eventами меньше 15 минут как в случае с "event tag2 eq3 prd2L 50" и "event tag2 eq3 prd2L 50"(конец в 18-03-16 11:30 и начало следующего 18-03-16 11:44) то записывается как один Event и время берется с предыдущего Eventа (18-03-16 11:30).

согласен замудренное условие, заранее благодарю за помощь.
8 сен 16, 08:03    [19640273]     Ответить | Цитировать Сообщить модератору
 Re: Замудренный запрос  [new]
sakot
Member

Откуда:
Сообщений: 132
извиняюсь, опечатка:

то есть, надо сгруппировать по tag и последнему числу в колонке Event name и записать как один Event,
также есть условие, что если продолжительность между двумя одинаковыми Eventами меньше 15 минут как в случае с "event tag2 eq3 prd2L 50" и "event tag2 eq3 prd2L 50"(конец в 18-03-16 11:30 и начало следующего 18-03-16 11:44) то записывается как один Event и время берется с start_time предыдущего Eventа (18-03-16 11:00).
8 сен 16, 08:33    [19640331]     Ответить | Цитировать Сообщить модератору
 Re: Замудренный запрос  [new]
Владислав Колосов
Member

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

добавьте нужное количество колонок в таблицу и разбейте неатомарные Event name на части, которые нельзя уже раздробить. после этого пишите запросы. Лучше всего разделать при заливке данных. Т.е. сначала приведите данные хотя бы к первой нормальной форме.
8 сен 16, 11:47    [19641363]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить