能描述清楚一些么?另外,union操作能有什么帮助么?

解决方案 »

  1.   

    --写成存储过程可以
    create proc p_qry 
    as
    set nocount on
    declare @s varchar(8000)
    set @s=''
    select @s=@s+',['+ckmc+']='''+ckmc+''',数量=sum(case kc.ckbm='''+rtrim(ckbm)+''' then kc.sl else 0 end)'
    from zd_ck ck
    where exists(
    select * from spkc where ckbm=ck.ckbm)
    exec('
    select sp.spbm,fl.flmc,sp.spmc,sp.spgg,sp.spxh
    ,zsl=sum(kc.sl)'+@s+'
    from sp_fl fl,sp,spkc kc
    where fl.flbm=sp.fl 
    and sp.spbm=kc.spbm
    group by sp.spbm,fl.flmc,sp.spmc,sp.spgg,sp.spxh
    ')