Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 计算现在和缺席的天数_Visual Studio 2008 - Fatal编程技术网

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:请投票或按回答进行标记以使其完整。