一行数据如何按列的值统计
id         d1         d2         d3         d4         d5         d6         d7         病假         事假         旷工 
 ------------------------ 
 001   |病|            |            |      事   |         |               |            |                  |                  |                      
 002   |      |      病|            |               |   旷|               |            |                  |                  |                
 003   |事|            |            |               |         |   病      |   旷   |                  |                  |   
 如何将每行的病假、事假、旷工的次数统计到最后三列里? 
 如果不是按周(7天)统计,而是按月(31天)呢? 
 自己只想出最笨的   用游标一行行计算然后更新 
 数据量很恐怖……
------解决方案--------------------update tb set  
 病假=len(replace(replace(isnull([d1], ' ')+isnull([d2], ' ')+isnull([d3], ' ')+isnull([d4], ' ')+isnull([d5], ' ')+isnull([d6], ' ')+isnull([d7], ' '), '事 ', ' '), '旷 ', ' ')), 
 事假=len(replace(replace(ltrim([d1])+ltrim([d2])+ltrim([d3])+ltrim([d4])+ltrim([d5])+ltrim([d6])+ltrim([d7]), '病 ', ' '), '旷 ', ' ')), 
 旷工=len(replace(replace(ltrim([d1])+ltrim([d2])+ltrim([d3])+ltrim([d4])+ltrim([d5])+ltrim([d6])+ltrim([d7]), '事 ', ' '), '病 ', ' '))