日期:2014-05-18  浏览次数:20572 次

一行数据如何按列的值统计
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]), '事 ', ' '), '病 ', ' '))