Visual studio 2008 计算现在和缺席的天数
我已将员工的出勤情况存储如下Visual studio 2008 计算现在和缺席的天数,visual-studio-2008,Visual Studio 2008,我已将员工的出勤情况存储如下 Columns : EmployeeCode Day1 Day2 Day3 ................ Day31 Values : EC001 P P A A 出于我的目的,我需要获得每位员工的当前天数和缺勤天数。我该怎么做呢?嗨,只要复制并粘贴这段代码就可以了。只需检查是否根据数据库中的内容更改表名。如果这有帮助,请不要忘记投票。谢谢大家! declare
Columns : EmployeeCode Day1 Day2 Day3 ................ Day31
Values : EC001 P P A A
出于我的目的,我需要获得每位员工的当前天数和缺勤天数。我该怎么做呢?嗨,只要复制并粘贴这段代码就可以了。只需检查是否根据数据库中的内容更改表名。如果这有帮助,请不要忘记投票。谢谢大家!
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
@user518363:请投票或按回答进行标记以使其完整。