select gl_accass.citem_id,iyear,iperiod,mb from gl_accass  /*期初*/
inner join
 (
select top(20) a_view_chqkb.citem_id,sum(sum_mc) as mc_sum,max(iyear) as ayear,max(iperiod) as aperiod from a_view_chqkb
where iyear=2016 and iperiod<=6
group by a_view_chqkb.citem_id
order by mc_sum desc) a
on gl_accass.citem_id=a.citem_id  and iperiod=aperiod and iyear=ayear
where ccode='1405'
group by gl_accass.citem_id,iyear,iperiod,mb 想要把其中的iyear和iperiod字段取出,然后做一个视图,这两个字段要放在EXCLE上做参数,现在EXCLE不支持这种复杂的内层条件的语句,有人知道如何取消内层条件,用关联关系直接关联成外层条件,直接让iyear和iperiod可作为参数a_view_chqkb的内容是
select top(2000) citem_id,citemname,sum(mc) as sum_mc,iyear,iperiod
from gl_accvouch,fitemss99 
where ccode='600101' and gl_accvouch.citem_id=fitemss99.citemcode
group by citem_id,citemname,iyear,iperiod
order by sum_mc desc

解决方案 »

  1.   

    作为参数AND iperiod <= 6 改为=
      

  2.   

    测测是不是这样的效果
    e.g.
    SELECT TOP ( 20 )
            a.citem_id ,
            a.iyear ,
            a.iperiod ,
            a.mb ,
            b.mc_sum
    FROM    gl_accass AS a /*期初*/
            INNER JOIN a_view_chqkb AS b ON a.citem_id = b.citem_id
                                            AND b.iperiod = a.iperiod
                                            AND a.iyear = b.iyear
    WHERE   ccode = '1405'
    ORDER BY b.mc_sum DESC;