没看懂!你是要declare @a varchar(8000)
set @a='select * from 表'
set @a=@a+' where aa in '
set @a=@a+'(12,34,546)'exec(@a)这个意思吗?

解决方案 »

  1.   

    pengdali(大力):你好!
    我只修改如:
    西药费=Sum(case when FY.FYLB IN('3','7') then FY.FY else null end)等此类语句,
    其中“西药费”要在另一个表中取得:表zd_mzhs1字段FLMC。FY.FYLB等于表zd_mzhs1字
    段JLXH的值,即:西药费=select FLMC from zd_mzhs1 where FLXH=1;
                    FY.FYLB in(select JLXH from zh_mzhs1 where FLXH=1);
    说白了只修改“西药费=Sum(case when FY.FYLB IN('3','7') then FY.FY else null end)”等行。最好写成存储过程。
      

  2.   

    将2、表zd_mzhs1的数据如下:
    FLXH FLMC                 JLXH
    ---- -------------------- ----------------------
    0     合计                  NULL
    1    西药费                  3,4,7,8
    2    中草药费                 5,6 
    改为
    0     合计                  NULL
    1    西药费                  3
    1    西药费                  42    中草药费                 5
    .....在前台做交叉表报,
    不然,用户每增加一统计项目,就必须修改过程
      

  3.   

    表zd_mzhs1是一个字典,改不了的:
    FLXH FLMC                 JLXH
    ---- -------------------- ----------------------
    0     合计                  NULL
    1    西药费                  3,4,7,8
    2    中草药费                 5,6
    其中JLXH的意义如下:
    西药费,4表示自费西药费;3表示公费西药费;8表示自费材料费;7表示公费材料费。等等。
      

  4.   

    to:j9988(j9988)你好!
    烦写个例子看看。
      

  5.   

    这样的问题也难倒高手吗?
    我想把表zd_mzhs1加到一个数组链表里,然后根据index进行for loop...