Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отчет по опоздавшим / 18 сообщений из 18, страница 1 из 1
25.09.2018, 12:27
    #39707589
Persik_85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Добрый день! Давно здесь не была. 3 года прошло! Мне нужна Ваша помощь! Например: Сотрудников не должны попадать в отчет по опоздавшим. А остальное в отчет попадали. Как это сделать? Подскажите пожалуйста!
...
Рейтинг: 0 / 0
25.09.2018, 12:28
    #39707590
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Пусть не опаздывают. Следующий
...
Рейтинг: 0 / 0
25.09.2018, 12:29
    #39707591
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Persik_85,
начать с точной постановки задачи. Кто и куда не должен попадать, почему именно эти люди и так далее
...
Рейтинг: 0 / 0
25.09.2018, 12:58
    #39707626
Persik_85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
TaPaK,
...
Рейтинг: 0 / 0
25.09.2018, 13:04
    #39707630
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
londiniumPersik_85,
начать с точной постановки задачи. Кто и куда не должен попадать, почему именно эти люди и так далее

за 3 года разучилась
...
Рейтинг: 0 / 0
25.09.2018, 13:10
    #39707633
Persik_85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
londinium,

У меня 4 отчетов: отчет по опоздавшим сотрудникам; отчет ушедшим раньше начала обеденного перерыва; отчет опоздавшего с обеденного перерыва; отчет ушедшим раньше положенного времени. Например: 50 сотрудников из 3 сотрудников не должны попадать в отчет опоздавшим. а остальное попадали в отчете. Как мне писать? Как это реализовать? Подскажите!!!
Код: 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.
ALTER procedure [dbo].[Late]
as
declare @date_time_now datetime
set @date_time_now=getdate()
if exists (select * from Calendar where [date]=cast(@date_time_now as date) and is_holiday=1)
	return

exec Update_Employee_cardno_acedb

declare @t table (rw nvarchar(100), nm nvarchar(100), ps nvarchar(100), st char(10), et char(10))
declare @rw nvarchar(100),@nm nvarchar(100),@ps nvarchar(100),@st char(10),@et char(10),@dpt nvarchar(100),@dpt_ nvarchar(100)
set @dpt_=''
declare cur_late cursor for
		select	ROW_NUMBER() over (order by d.id) rn,
				e.last_name+' '+e.first_name+' '+isnull(e.middle_name,'') [name],
				isnull(p.position_name,'-') position,
				t.start_time,
				coalesce(convert(char(5),ev.et,14),'-') event_time,
				d.dept_name
		from Employees.dbo.Employees e
		left join Employees.dbo.EmployeeStartTime t
			on e.employee_start_time_id=t.id
		left join Employees.dbo.EmployeePosition p
			on e.position_id=p.id
		inner join Employees.dbo.Department d
			on e.dept_id=d.id
		left join
		(
			select e.stringValue cardno, min(e.eventCreationTime) et
			from BIS.BISEventLog.dbo.vw_LogEvent e
			where e.eventCreationTime between 
						convert(char(11),@date_time_now,21)+'01:00' and @date_time_now
					and e.addressId in (8444,77,16471,16472,16631,16632,18606,18608) -- вход
					and e.eventValueName='CARDNO'
					and e.eventtypeid=1
			group by e.stringValue
		) ev 
			on ev.cardno=e.card_no collate Latin1_General_CI_AS
		where e.active=1
				and (ev.et>convert(char(11),@date_time_now,21)+dateadd(minute,5,t.start_time)--'08:34:59' 
						or ev.et is null)
...
Рейтинг: 0 / 0
25.09.2018, 13:12
    #39707636
Гадя Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
сурово в казахстане гайки закручивают...
...
Рейтинг: 0 / 0
25.09.2018, 13:13
    #39707637
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Persik_85 londinium,

У меня 4 отчетов: отчет по опоздавшим сотрудникам; отчет ушедшим раньше начала обеденного перерыва; отчет опоздавшего с обеденного перерыва; отчет ушедшим раньше положенного времени. Например: 50 сотрудников из 3 сотрудников не должны попадать в отчет опоздавшим. а остальное попадали в отчете. Как мне писать? Как это реализовать? Подскажите!!!
Код: 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.
ALTER procedure [dbo].[Late]
as
declare @date_time_now datetime
set @date_time_now=getdate()
if exists (select * from Calendar where [date]=cast(@date_time_now as date) and is_holiday=1)
	return

exec Update_Employee_cardno_acedb

declare @t table (rw nvarchar(100), nm nvarchar(100), ps nvarchar(100), st char(10), et char(10))
declare @rw nvarchar(100),@nm nvarchar(100),@ps nvarchar(100),@st char(10),@et char(10),@dpt nvarchar(100),@dpt_ nvarchar(100)
set @dpt_=''
declare cur_late cursor for
		select	ROW_NUMBER() over (order by d.id) rn,
				e.last_name+' '+e.first_name+' '+isnull(e.middle_name,'') [name],
				isnull(p.position_name,'-') position,
				t.start_time,
				coalesce(convert(char(5),ev.et,14),'-') event_time,
				d.dept_name
		from Employees.dbo.Employees e
		left join Employees.dbo.EmployeeStartTime t
			on e.employee_start_time_id=t.id
		left join Employees.dbo.EmployeePosition p
			on e.position_id=p.id
		inner join Employees.dbo.Department d
			on e.dept_id=d.id
		left join
		(
			select e.stringValue cardno, min(e.eventCreationTime) et
			from BIS.BISEventLog.dbo.vw_LogEvent e
			where e.eventCreationTime between 
						convert(char(11),@date_time_now,21)+'01:00' and @date_time_now
					and e.addressId in (8444,77,16471,16472,16631,16632,18606,18608) -- вход
					and e.eventValueName='CARDNO'
					and e.eventtypeid=1
			group by e.stringValue
		) ev 
			on ev.cardno=e.card_no collate Latin1_General_CI_AS
		where e.active=1
				and (ev.et>convert(char(11),@date_time_now,21)+dateadd(minute,5,t.start_time)--'08:34:59' 
						or ev.et is null)



50 из 3 - это сила.
Если у вас нет никаких признаков, а надо зашить исключения явно, то так и напишите
Код: sql
1.
 and e.id not in(1,2,3)
...
Рейтинг: 0 / 0
25.09.2018, 13:13
    #39707638
Persik_85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
256klondiniumPersik_85,
начать с точной постановки задачи. Кто и куда не должен попадать, почему именно эти люди и так далее

за 3 года разучилась
...
Рейтинг: 0 / 0
25.09.2018, 13:18
    #39707641
Persik_85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Посетитель

50 из 3 - это сила.
Если у вас нет никаких признаков, а надо зашить исключения явно, то так и напишите
Код: sql
1.
 and e.id not in(1,2,3)



У меня 850 сотрудников. Есть ли другой вариант?
...
Рейтинг: 0 / 0
25.09.2018, 13:22
    #39707645
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Persik_85Посетитель
50 из 3 - это сила.
Если у вас нет никаких признаков, а надо зашить исключения явно, то так и напишите
Код: sql
1.
 and e.id not in(1,2,3)



У меня 850 сотрудников. Есть ли другой вариант?
оставьте только тех троих кого надо карать
...
Рейтинг: 0 / 0
25.09.2018, 13:22
    #39707646
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Persik_85Посетитель
50 из 3 - это сила.
Если у вас нет никаких признаков, а надо зашить исключения явно, то так и напишите
Код: sql
1.
 and e.id not in(1,2,3)




У меня 850 сотрудников. Есть ли другой вариант?

наверняка. но вы же не озвучили, по каким признакам отделить мух от котлет.
...
Рейтинг: 0 / 0
25.09.2018, 13:31
    #39707658
Persik_85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
ок. попробую.
...
Рейтинг: 0 / 0
25.09.2018, 13:36
    #39707664
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Persik_85 londinium,

У меня 4 отчетов: отчет по опоздавшим сотрудникам; отчет ушедшим раньше начала обеденного перерыва; отчет опоздавшего с обеденного перерыва; отчет ушедшим раньше положенного времени. Например: 50 сотрудников из 3 сотрудников не должны попадать в отчет опоздавшим . а остальное попадали в отчете. Как мне писать? Как это реализовать? Подскажите!!!
[/src]

50 из 3-х - это вип
...
Рейтинг: 0 / 0
25.09.2018, 13:40
    #39707670
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Persik_85,

Создайте таблицу с EmployeeId DateFrom DateInto проплативших сотрудников за определённый период. И исключайте их :)
...
Рейтинг: 0 / 0
25.09.2018, 15:26
    #39707760
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Электронная проходная?
Кто производитель и чей софт?
...
Рейтинг: 0 / 0
25.09.2018, 15:30
    #39707763
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
982183Электронная проходная?
Кто производитель и чей софт?
вангую
Bosch Security Systems
...
Рейтинг: 0 / 0
25.09.2018, 15:53
    #39707781
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет по опоздавшим
Persik_85Посетитель
50 из 3 - это сила.
Если у вас нет никаких признаков, а надо зашить исключения явно, то так и напишите
Код: sql
1.
 and e.id not in(1,2,3)



У меня 850 сотрудников. Есть ли другой вариант?

можно захрдкодировать тех опаздывающих, потом наверняка надо будет печатать листовки по ним, с возмущением жителей
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отчет по опоздавшим / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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