sql 求和 、同比

    <select id="getExport" resultMap="BaseResultMap"
        parameterType="com.dossp.licence.importantgoods.vo.ImportantGoodsVo">
        select
        a.jck,a.zslb,a.cd_cat_c_na,a.cd_unit,a.fzfs,a.fzsl,a.zmje,a.qgfs,a.qgsl,a.qgje,
        decode(a.yfzfs,0,0,trunc((a.fzfs/a.yfzfs-1)*100,2)) as fzfstb,
        decode(a.yfzsl,0,0,trunc((a.fzsl/a.yfzsl-1)*100,2)) as fzsltb,
        decode(a.yzmje,0,0,trunc((a.zmje/a.yzmje-1)*100,2)) as zmjetb,
        decode(a.yqgfs,0,0,trunc((a.qgfs/a.yqgfs-1)*100,2)) as qgfstb,
        decode(a.yqgsl,0,0,trunc((a.qgsl/a.yqgsl-1)*100,2)) as qgsltb,
        decode(a.yqgje,0,0,trunc((a.qgje/a.yqgje-1)*100,2)) as qgjetb from (
        select
        a.jck,a.zslb,a.cd_cat_cde,a.cd_cat_c_na,a.cd_unit,a.fzfs,a.fzsl,a.zmje,a.qgsl,a.qgfs,a.qgje,b.yfzfs,b.yfzsl
        ,b.yzmje ,b.yqgsl ,b.yqgfs ,b.yqgje from (
        select '出口' as jck,'出口许可证' as
        zslb,t.cd_cat_cde,t.cd_cat_c_na,t.cd_unit,count(t.lic_no) as
        fzfs,sum(t.t_qty) as fzsl,sum(t.top_amt) as zmje,count(b.lic_no) as
        qgfs,nvl(sum(b.qty),0) as qgsl,nvl(sum(b.usamt),0) as qgje from
        lic_dtls_export_${year} t
        left join lic_cus_export b on t.lic_no = b.lic_no
        <where>
            <if test="c_code != null and c_code != ''">
                AND t.cd_cat_cde =#{c_code}
            </if>
            and t.OFC_CDE = 'AA'
            and t.qta_year = #{year}
            and t.stau in ('AA','AM')
            AND t.ISS_DTE BETWEEN #{start_date} AND #{endDate}
        </where>

        group by t.cd_cat_cde ,cd_cat_c_na,cd_unit
        )a left join (
        select '出口' as jck,'出口许可证' as
        zslb,t.cd_cat_cde,t.cd_cat_c_na,t.cd_unit,count(t.lic_no) as
        yfzfs,sum(t.t_qty) as yfzsl,sum(t.top_amt) as yzmje,count(b.lic_no) as
        yqgfs,nvl(sum(b.qty),0) as yqgsl,nvl(sum(b.usamt),0) as yqgje from
        lic_dtls_export_${oldyear} t
        left join lic_cus_export b on t.lic_no = b.lic_no
        <where>
            <if test="c_code != null and c_code != ''">
                AND t.cd_cat_cde =#{c_code}
            </if>
            and t.OFC_CDE = 'AA'
            and t.qta_year = #{oldyear}
            and t.stau in ('AA','AM')
            AND t.ISS_DTE BETWEEN #{start_datenext} AND #{oldendDate}
        </where>

        group by t.cd_cat_cde ,cd_cat_c_na,cd_unit) b on (a.cd_cat_c_na =
        b.cd_cat_c_na and a.cd_cat_cde=b.cd_cat_cde  )
        ) a


    </select>

猜你喜欢

转载自blog.csdn.net/zhangjiaqianghh/article/details/83111185