powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Учет заданий, сделанных в рабочее время
15 сообщений из 15, страница 1 из 1
Учет заданий, сделанных в рабочее время
    #39677516
kint36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите, пожалуйста, идею, как можно в отчете реализовать следующее: в отчете отражается фактически выполненное количество заданий сотрудником. Каким образом можно разделить задания на сделанные в рабочее время и в нерабочее время, например, если человек остался на переработку?
Ниже сам отчет.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
declare @d varchar(19), @attribut varchar(10)
set @d = SWITCHOFFSET(?, '-03:00'); set @attribut = ?
select COUNT(i.serialkey) as oper
, case when i.SOURCETYPE = 'ntrPickDetailUpdate' then 'Отгрузка' 
when i.SOURCETYPE = 'ntrReceiptDetailAdd' then 'Приёмка' 
when i.SOURCETYPE = 'ntrAdjustmentDetailUnreceive' then 'Отмена приёмки'
when i.SOURCETYPE = 'PICKING' then 'Отбор'
when i.SOURCETYPE in ('NSPRFPA02', 'RFPUTAWAYTASK') then 'Размещение' 
when i.SOURCETYPE in ('NSPRFRL01', 'RFMOVETASK', 'RFREPLENISHMENTTASKFINAL') then 'Перемещение'
when i.SOURCETYPE = 'nspRFTRP01' then 'Пополнение' 
when i.SOURCETYPE = 'TaskReasonMove' then 'Перемещение в LOST' 
when i.SOURCETYPE = 'RFMoveFlowThrough' then 'Перемещение отобр. товара'
when i.SOURCETYPE = 'Console Move' then 'Перемещение через рабочую станцию'
else i.SOURCETYPE end as descr 
into #t1
from wmwhse1.ITRN I
inner join scprdd1.dbo.e_sso_user u on i.EDITWHO = u.sso_user_name
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where convert (nvarchar(19), i.EDITDATE, 120) between @d and (? +' '+'20:59:59') 
and (i.EDITWHO like 'tv%' or i.EDITWHO like 'stvp%' or i.EDITWHO like 'mst%' or i.editwho in ('rsa', 'abn', 'cai')) 
and i.TOLOC <> 'INTRANSIT' 
and not (FROMLOC = 'pickto' and TOLOC = 'pickto' and FROMID <> TOID) and i.SOURCETYPE <> 'SHORTPICK'
and i.editwho not like 'tvo%' and ua.sso_user_attribute_value like @attribut  
group by i.SOURCETYPE

UNION

select COUNT(i.serialkey) as oper
, case
when i.SOURCETYPE = 'ntrPickDetailUpdate' then 'Отгрузка' 
when i.SOURCETYPE = 'ntrReceiptDetailAdd' then 'Приёмка' 
when i.SOURCETYPE = 'PICKING' then 'Переупаковка'
else i.SOURCETYPE end as descr
from wmwhse1.ITRN I
inner join scprdd1.dbo.e_sso_user u on i.EDITWHO = u.sso_user_name
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where convert (nvarchar(19), i.EDITDATE, 120) between @d and (? +' '+'20:59:59') and (i.EDITWHO like 'tv%' or i.EDITWHO like 'stvp%' or i.EDITWHO like 'mst%' or i.editwho in ('rsa', 'abn', 'cai')) 
and i.TOLOC <> 'INTRANSIT' 
and (FROMLOC = 'pickto' and TOLOC = 'pickto' and FROMID <> TOID)
and i.editwho not like 'tvo%' and ua.sso_user_attribute_value like @attribut
group by i.SOURCETYPE

UNION

select COUNT(rh.SERIALKEY) as qty_task, 'Приёмка ТМ' as descr
from wmwhse1.RECEIPTDETAILSTATUSHISTORY rh (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = rh.ADDWHO
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where RECEIPTKEY in (select distinct RECEIPTKEY 
from wmwhse1.RECEIPTDETAILSTATUSHISTORY 
where STATUS in ('-1'))
and status = '0' and convert(nvarchar(19), rh.ADDDATE, 120)  between @d and ?+' '+'20:59:59' and ua.sso_user_attribute_value like @attribut

UNION

select  COUNT(*) as pick_QTY, 'Отбор из хранения ТВР' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where EXTERNORDERKEY like 'TBP%' and convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('Z-HRANST', 'Z-BARELL', 'Z-HISTORAG', 'Z-HRANSTHI', 'HR-OIL', 'Z-HRANC', 'CROSS'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut
UNION
select  COUNT(*) as pick_MEZONIN, 'Отбор из Мезонина' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where /*EXTERNORDERKEY like 'TBP%' and*/ convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('M-BOX', 'Z-M OUN', '	Z-M1', 'Z-M2', 'Z-MKOMP', 'Z-OTBXDMEL'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut
UNION
select  COUNT(*) as pick_AO_hran, 'Отбор из хранения А(О)' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where EXTERNORDERKEY like 'A%' and convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('Z-HRANST', 'Z-BARELL', 'Z-HISTORAG', 'Z-HRANSTHI', 'HR-OIL', 'Z-HRANC', 'CROSS'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut
UNION
select  COUNT(*) as pick_TBP, 'Отбор ТВР' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where EXTERNORDERKEY like 'TBP%' and convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('Z-OTBORST', 'Z-TEMP', 'Z-OTBSTHI', 'Z-OIL', 'OTB-MEDIUM', 'Z-KOMP', 'Z-CROSS', 'CROSSNAPL', 'Z-STEKLA'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut
UNION
select  COUNT(*) as pick_AO, 'Отбор А(О)' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where EXTERNORDERKEY like 'A%' and convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('Z-OTBORST', 'Z-TEMP', 'Z-OTBSTHI', 'Z-OIL', 'OTB-MEDIUM', 'Z-KOMP', 'Z-CROSS', 'CROSSNAPL', 'Z-STEKLA'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut
UNION
select  COUNT(*) as pick_obresh, 'Отбор обрешёток' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('Z-SHTAB1', 'Z-MEGA', 'Z-SHTAB5', 'Z-SHTAB4', 'Z-SHTAB3', 'Z-SHTAB2'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut
UNION
select  COUNT(*) as pick_bumper, 'Отбор бамперов, Кладовка' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('Z-KLAD', 'Z-KLAD-B', 'Z-HROTBAMP', 'Z-HRANSTKR'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut
UNION
select  COUNT(*) as pick_glush, 'Отбор глушителей' as pick_type
from wmwhse1.TASKDETAIL td (nolock)
inner join scprdd1.dbo.e_sso_user u on u.sso_user_name = td.USERKEY
left join scprdd1.dbo.e_sso_user_attribute ua on u.e_sso_user_id=ua.sso_user_id
where td.ORDERKEY in (select ORDERKEY from wmwhse1.ORDERS where convert (nvarchar(19), EDITDATE, 120) between @d and (? +' '+'20:59:59'))
and td.FROMLOC in (select loc from wmwhse1.LOC where PUTAWAYZONE in ('Z-GLUSH'))
and (td.USERKEY like 'tv%' or td.USERKEY like 'stvp%' or td.USERKEY like 'mst%' or td.USERKEY in ('rsa', 'abn', 'cai')) and td.USERKEY not like 'tvo%' and ua.sso_user_attribute_value like @attribut

select SUM(CAST((case when descr = 'Приёмка ТМ' then oper/1.923 when descr = 'Переупаковка' then oper/2.308 when descr like 'Отбор%' then oper
		when descr = 'Перемещение' then oper/0.962 when descr = 'Размещение' then oper/0.846 when descr = 'Приёмка' then oper/1.154
		when descr = 'Перемещение отобр. товара' then oper/2.307
		else oper end) as decimal(8,2)))  as oper_ipnv
, descr, SUM(oper) as oper
from #t1
group by descr

drop table #t1

...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677518
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kint36,
а это как?
Код: sql
1.
(? +' '+'20:59:59') 
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677520
kint36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно я не совсем правильно вопрос сформулировал. Например, если смена у человека длится с 8 до 16 и он сделал несколько заданий после окончания смены, они будут учитываться в этом отчете. И соответственно вопрос, как сделать, чтобы учитывались задания только в рабочее время
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677524
AlBor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если у вас есть таблица заданий и у каждого задания есть время окончания (сдачи), то почему бы не написать запрос на выборку только законченных в пределах рабочего времени..
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677636
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kint36,

школьный курс алгебры за 6-й класс, решение уравнений на числовой прямой. теорема об отрезках: два отрезка пересекаются если концы обоих отрезков больше обоих их начал.

вот и сравнивайте моменты начала/кончала рабочего времени и времени выполнения задания.
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677674
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щукина Аннаkint36,

школьный курс алгебры за 6-й класс, решение уравнений на числовой прямой. теорема об отрезках: два отрезка пересекаются если концы обоих отрезков больше обоих их начал.

вот и сравнивайте моменты начала/кончала рабочего времени и времени выполнения задания.

А ежели начал в рабочее, а закончил после?
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677708
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kint36Возможно я не совсем правильно вопрос сформулировал. Например, если смена у человека длится с 8 до 16 и он сделал несколько заданий после окончания смены, они будут учитываться в этом отчете. И соответственно вопрос, как сделать, чтобы учитывались задания только в рабочее времяВы не пишите сразу запрос, а сформулируйте как инженер, в терминах математики, сравнения чисел. Не "он сделал несколько заданий", а "задание считается как "сделано в нерабочее время", если время начала задания больше чем.. и ... меньше чем ..." и т.д.
А то, честное слово, вы как менеджер спросили!
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677712
kint36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,
если начал в рабочее, а закончил после, то учитывается как выполненное в течении рабочего дня
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677715
kint36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

Большое спасибо за совет. Тогда будет звучать так: Для человека из условной смены А задание будет считаться "выполненным в нерабочее время", если время начала задания больше 16:00 и меньше чем 8:00
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677771
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kint36alexeyvg,

Большое спасибо за совет. Тогда будет звучать так: Для человека из условной смены А задание будет считаться "выполненным в нерабочее время", если время начала задания больше 16:00 и меньше чем 8:00Время события не может быть одновременно больше 16:00 и меньше 8:00 :-)
Наверное, вы имели в виду "ИЛИ"?

"ИЛИ" в T-SQL записывается оператором OR, больше и меньше - операторами ">" и "<"

Вот, когда составите на русском такие условия, запишите их на T-SQL в условиях запроса.

Только обязательно проверьте, проиграйте все варианты, не спешите кодить сразу.

Допустим, человек начал задание в 15, и закончил в 21 - это у вас выполнено в рабочее время. А вот начал в 17, и закончил в 21 - это у вас выполнено в нерабочее время. Правильно ли это?
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677775
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgВремя события не может быть одновременно больше 16:00 и меньше 8:00 :-)Почему? Начал в 16:00, а закончил на следующий день утром в 8:00
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677777
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(Шутка) если пришел на работу на пять минут раньше, и начал, а закончил на пять минут позже, и ушел, то это задание сделанное с нерабочее время. потому что ни начало ни конец в рабочее время не попадает.
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677791
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakov(Шутка) если пришел на работу на пять минут раньше, и начал, а закончил на пять минут позже, и ушел, то это задание сделанное с нерабочее время. потому что ни начало ни конец в рабочее время не попадает.
(не шутка) а таким платить и не нужно - они альтруисты с горящими глазами, работающие за еду
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677940
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapalexeyvgВремя события не может быть одновременно больше 16:00 и меньше 8:00 :-)Почему? Начал в 16:00, а закончил на следующий день утром в 8:00Это да, это уже следующие вопросы :-)
...
Рейтинг: 0 / 0
Учет заданий, сделанных в рабочее время
    #39677941
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakov(Шутка) если пришел на работу на пять минут раньше, и начал, а закончил на пять минут позже, и ушел, то это задание сделанное с нерабочее время. потому что ни начало ни конец в рабочее время не попадает.Да, а за это двойная зарплата!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Учет заданий, сделанных в рабочее время
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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