считать количество дней присутствующих и отсутствующих - PullRequest
0 голосов
/ 01 декабря 2010

Я сохранил посещаемость сотрудника, как показано ниже ...

Columns  :  EmployeeCode Day1   Day2   Day3 ................ Day31

Values     :  EC001      P       P      A                       A

Для моей цели мне нужно получить счет текущего и отсутствующего дня для каждого сотрудника. Как я могу это сделать?

1 Ответ

0 голосов
/ 01 декабря 2010

Привет, просто скопируйте и вставьте этот код, и он будет работать нормально. Просто проверьте, измените ли имя таблицы относительно того, что у вас есть в вашей базе данных. Пожалуйста, не забудьте проголосовать, если это поможет. Спасибо!

declare @tableName varchar(100)
declare @tableFieldId varchar(100)

set @tableName = 'tbl_Attendance'
set @tableFieldId = 'EmployeeCode'




------------- no need to edit from here -----------------------

declare @sql nvarchar(Max)
declare @Present nvarchar(Max)
declare @Absent nvarchar(Max)


Set @sql = 'Select ' + @tableFieldId + ''
set @Present = ''
set @Absent = ''
select 
    @Present = @Present + ' case when ' + syscolumns.[name] + ' = ''P'' then 1 else 0 end + ' + char(10) + char(13),
    @Absent = @Absent + ' case when ' + syscolumns.[name] + ' = ''A'' then 1 else 0 end + ' + char(10) + char(13)
from sysobjects inner join syscolumns on sysobjects.id = syscolumns.id
where sysobjects.[name] = @tableName 

-- remove last +
set @Present = lefT( @Present, len(@Present) - 4) + char(10) + char(13)
set @Absent= lefT( @Absent, len(@Absent) - 4) + char(10) + char(13)

set @sql = @sql + ', Present =' +  @Present + ', Absent =' +  @Absent + 
'from ' + @tableName +  char(10) + char(13) 


exec sp_executesql @sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...