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

Откуда:
Сообщений: 1062
Добрый день!

Возникла проблема

Есть станок. он штампует детали когда приезжает заготовка.
в базу пишется дата и время начала штамповки каждой заготовки.

Вопрос как посчитать сколько времени работает станок?

я думал написать задачу через cross join но не понимаю как посчитать предыдущее время. с датами просто
cross join where дата >="дата +1"
8 дек 15, 18:33    [18531722]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
кириллk,

lag + datediff
8 дек 15, 18:45    [18531765]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
кириллk
Member

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

у меня mssql 2000
8 дек 15, 18:47    [18531773]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
_human
Member

Откуда:
Сообщений: 569
кириллk,

Задача не полная как по мне.
Нужен пример
8 дек 15, 18:49    [18531781]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
кириллk
Member

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

data detal
2015-11-11 09:12:42.000 1
2015-11-11 09:19:16.000 2
2015-11-11 09:20:47.000 3
2015-11-11 09:21:34.000 4
2015-11-11 09:22:54.000 5
2015-11-11 09:23:44.000 6
8 дек 15, 18:53    [18531809]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
кириллk
Member

Откуда:
Сообщений: 1062
кириллk
_human,

data detal
2015-11-11 09:12:42.000 1
2015-11-11 09:19:16.000 2
2015-11-11 09:20:47.000 3
2015-11-11 09:21:34.000 4
2015-11-11 09:22:54.000 5
2015-11-11 09:23:44.000 6


номер детали может быть любой. даже текстовый
8 дек 15, 18:54    [18531813]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
кириллk
WarAnt,

у меня mssql 2000


ну тогда left join + (id - 1) + datediff + sum
8 дек 15, 18:55    [18531816]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
кириллk,

а вообще, чем не устраивает max(data) - min(data)?
8 дек 15, 18:57    [18531830]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
кириллk
Member

Откуда:
Сообщений: 1062
WarAnt
кириллk,

а вообще, чем не устраивает max(data) - min(data)?


мне нужно почитать что "деталь 1" делалась 7 минут.
А для этого надо посчитать когда началась делаться деталь 2.

а айдишник у деталей могут быть разными в т.ч и текстовыми
8 дек 15, 19:02    [18531851]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
Добрый Э - Эх
Guest
WarAnt
кириллk,

а вообще, чем не устраивает max(data) - min(data)?
видимо тем, что ща восьми часовую смену станок мог работать всего 10 минут - 5 в начале смены и пять в конце. Если брать мин-макс, то получишь все восемь часов, а не 10 минут
8 дек 15, 19:05    [18531870]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
кириллk
Member

Откуда:
Сообщений: 1062
WarAnt
кириллk
WarAnt,

у меня mssql 2000


ну тогда left join + (id - 1) + datediff + sum


пытаюсь сделать через full join и дата <=дата+1
8 дек 15, 19:23    [18531953]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
3unknown
Member

Откуда: New York
Сообщений: 140
Как-то так:
Create table #dates(t_date datetime)

insert #dates
select '2015-11-11 09:12:42.000'
union
select '2015-11-11 09:19:16.000'
union
select '2015-11-11 09:20:47.000'
union
select '2015-11-11 09:21:34.000'
union
select '2015-11-11 09:22:54.000'
union
select '2015-11-11 09:23:44.000'

select d.t_date start
,min(d1.t_date) finish
,DATEDIFF(SECOND,d.t_date,min(d1.t_date)) as diff_second
,DATEDIFF(MINUTE,d.t_date,min(d1.t_date)) as diff_minutes
from #dates d
join #dates d1 on d.t_date < d1.t_date
group by d.t_date
8 дек 15, 19:25    [18531964]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
кириллk
Member

Откуда:
Сообщений: 1062
[quot 3unknown]Как-то так:

спасибо работает а то никак с этими знаками не разбеусь ) больше меньше равно))
8 дек 15, 19:28    [18531980]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
кириллk
в базу пишется дата и время начала штамповки каждой заготовки.
Как определить сколько времени затрачено на деталь №6?
8 дек 15, 19:35    [18532010]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
кириллk
Member

Откуда:
Сообщений: 1062
invm
кириллk
в базу пишется дата и время начала штамповки каждой заготовки.
Как определить сколько времени затрачено на деталь №6?


Хороший вопрос. я сначала подумал про дату начала и конца смены.
Но конец не подходит
8 дек 15, 19:44    [18532057]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Чета вы путаетесь в показаниях, сначала
автор
Вопрос как посчитать сколько времени работает станок?

а потом вдруг
кириллk
мне нужно почитать что "деталь 1" делалась 7 минут.


Дак все таки что нужно то?
9 дек 15, 10:51    [18533874]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
кириллk
в базу пишется дата и время начала штамповки каждой заготовки.


а время (длительность или окончание) штамповки известно? иначе задача нерешаема
9 дек 15, 11:41    [18534164]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
Wergo
Guest
Скорее всего время обработки детали - константа.
select константа*count(detal) from таблица
where data between :data_start and :data_end
10 дек 15, 05:52    [18538326]     Ответить | Цитировать Сообщить модератору
 Re: Запрос время работы  [new]
Jaffar
Member

Откуда:
Сообщений: 633
Если есть только дата_время начала работы по заготовке - то этой инфы не достаточно.
т.к. станок может простаивать и эта инфа никак не отображается в базе.

Например
1 = 9:12:23
2 = 9:14:30
3 = 9:15:46
4 = 9:18:20
5 = 12:04:15

получается что деталь № 4 делалась 2 часа 46 минут, или был простой?
Можно конечно определить макс. допустимое время изготовления и если разница больше - то применять его


select t1.Detal, t2.t_Date - t1.t_Date TimeWork
from (select row_number() over(order by t_Date asc) NN, t.* from Table_1) t1
left join (select row_number() over(order by t_Date asc) NN, t.* from Table_1) t2 on t1.NN = t2.NN+1
order by t1.Detal
10 дек 15, 07:56    [18538415]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить