powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ГоловоМойка
11 сообщений из 11, страница 1 из 1
ГоловоМойка
    #39366838
The_Loony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В системе электронного документооборота все документы проходят по некоторому набору статусов. Маршрут заранее не известен. Каждый раз, когда документ переходит на определенный статус, в таблицу Stat записывается информация: идентификатор документа(DocId), статус, на который перешел документ (Status), и дата перехода на статус (Date)

DocId Status Date
1 C 28.02.2014
2 B 02.05.2014
1 C 13.01.2014
1 A 22.01.2014
3 D 24.02.2014


Необходимо написать запрос который выведет следующую информацию:
-идентификатор документа
-статус
-дата перехода на данный статус
- дата перехода на следующий статус, если перехода не было, то отобразить текущую дату

Пример таблицы на выходе:

DocId Status Date1 Date2
1 C 28.02.2014 Сегодняшняя дата
2 B 02.05.2014 Сегодняшняя дата
1 C 13.01.2014 22.01.2014
1 A 22.01.2014 28.02.2014
3 D 24.02.2014 Сегодняшняя дата
...
Рейтинг: 0 / 0
ГоловоМойка
    #39366862
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_LoonyНеобходимо написать запрос который выведет следующую информацию:Для какого-то подмножества документов или для всех сразу?
Существует какая-то таблица с документами?
...
Рейтинг: 0 / 0
ГоловоМойка
    #39366895
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чём сложность? берёшь две копии таблицы стороннее связывание по равенству документа и превышению даты, отбор минимума даты - и получаешь собственно две последовательные даты.
...
Рейтинг: 0 / 0
ГоловоМойка
    #39366896
The_Loony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
1-думаю что для всех документов (так же взяв их конечное число 5 шт)
2-таблицы с документами нет, все что дано, написал(((
...
Рейтинг: 0 / 0
ГоловоМойка
    #39366902
The_Loony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
а можно в виде запроса это изобразить?)))
Логически я понимаю как это сделать, а с помощью sql.....тяжко
...
Рейтинг: 0 / 0
ГоловоМойка
    #39366908
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
select t1.docid, t1.status, t1.date date1, min(t2.date) date2
from table t1
left join table t2
on t1.docid=t2.docid and t1.date<t2.date
group by t1.docid, t1.status, t1.date



При этом структура хранения должна гарантировать уникальность совокупности полей (docid,date) наличием INIQUE INDEX. Или будешь получать хрень собачью.
...
Рейтинг: 0 / 0
ГоловоМойка
    #39367022
The_Loony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

у вас есть варианты решения?
...
Рейтинг: 0 / 0
ГоловоМойка
    #39367032
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Loonymiksoft,

у вас есть варианты решения?Без опорной таблицы с документами - хорошего решения не вижу.
Без нее придется делать что-то типа того, что предлагает Akina.
...
Рейтинг: 0 / 0
ГоловоМойка
    #39367035
The_Loony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
в любом случае спасибо)
...
Рейтинг: 0 / 0
ГоловоМойка
    #39367303
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select 
  status 
  ,if(@i=docid, @d, curdate()) date2,
  ,@d := t.date date1
  ,@i := t.docid docid 
from t
join (select @d := curdate(), @i := -1 ) z
order by docid, date desc
...
Рейтинг: 0 / 0
ГоловоМойка
    #39367407
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,
моск сломал, пока разобрался )
Алгоритмическое решение на sql - круто.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ГоловоМойка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]