昨天的帖子
http://community.csdn.net/Expert/topic/5700/5700979.xml?temp=.5231134
初步从ok.xsl
部門名稱 員工編號 员工姓名 請假日期 假别名称 請假時數 時數單位
(K1) Q-0004 姚力 20070601 年休假 1 天
(K1) Q-0004 姚力 20070608 陪產假 1 天
(K1) Q-0004 姚力 20070612 年休假 2 天
(K1) Q-0005 顧忠 20070601 年休假 0.5 天
(K2) Q-0031 趙丽 20070601 半薪病假 8 小時
.........................................
要实现
部門名稱 員工編號 员工姓名 年休假 陪產假 半薪病假
(K1) Q-0004 姚力 20070601 24小时 8小时
(K1) Q-0005 顧建忠 20070601 4小时
(K2) Q-0031 趙丽 20070601 8 小時
.................................
时间单位为天的话,就要乘8,转化为小时。
以工号为唯一性,合并多条数据为一条。
..........
Help me !
------解决方案--------------------------------------------------------
先踩下,开完会,帮你弄 ...
------解决方案--------------------------------------------------------
先从excel读到datatable中.然后有两种方法,一种是先导入数据库,然后在数据库中计算,这样比较简单,做个groupby 就可另一种直接在datatblae中计算.DataView 按部门员工排序.循环.累加.或者,用dt.Compute( "sum(日期) ", "编号= '某个员工编号 ')
------解决方案--------------------------------------------------------
declare @s varchar(8000)
set @s = 'select 部門名稱,員工編號,员工姓名 '
select @s = @s+ ', '+假别名称+ '=sum(case 假别名称 when ' ' '+假别名称+ ' ' ' then 請假時數*(case 時數單位 when ' '天 ' ' then 8 else 1 end) else 0 end) '
from tb group by 假别名称
exec(@s+ 'from tb group by 部門名稱,員工編號,员工姓名 ')