a表的字段和数据如下:
费用栏目                                   001-公司高层
5501.01-工资及工资性费用                 
5501.01.01-工资                          1
5501.01.02-福利费                 2
5501.01.03-职工教育经费                 35501.01下面有不确定的子费用栏目,现在求和5501.01-工资及工资性费用   的值,我用
update a表   set
[001-公司高层] =(
(select  sum([001-公司高层])  from  a表  where     费用栏目='5502.01.01-工资')+
(select  sum([001-公司高层])  from  a表  where     费用栏目='5502.01.02-福利费')+
(select  sum([001-公司高层])  from  a表  where     费用栏目='5502.01.04-养老保险金' ) )  where  费用栏目 =  '5502.01-工资及工资性费用'
能算出结果'5502.01-工资及工资性费用'的值等于6,但是以后5501.01下面估计还要添加5501.01.04,05,06子费用栏目,这样需要反复修改这个upda语句,非常麻烦。有没有简单方法让能自由添加子费用栏目,又不修改update语句呢?

解决方案 »

  1.   

    --用like 
    update a表  set 
    [001-公司高层] =(select  sum([001-公司高层])  from  a表  where    费用栏目 like '5502.01%')  where  费用栏目 =  '5502.01-工资及工资性费用' 
      

  2.   

    --modify
    update a表  set 
    [001-公司高层] =(select  sum([001-公司高层])  from  a表  where    费用栏目 like '5501.01.%')  where  费用栏目 =  '5501.01-工资及工资性费用' 
      

  3.   

    用费用栏目 like '5501.01.%',就可以把'5501.01'下的子栏目都包括。
      

  4.   


    update a表  set [001-公司高层] =(select sum(费用栏目) from a表 where 费用栏目 like '5501.01%') where  费用栏目='5501.01-工资及工资性费用'