本帖最后由 wuqiwyt 于 2014-10-12 10:13:50 编辑

解决方案 »

  1.   

    如果其他部门提供的 纳 税 人名称不标准,只要提供他们提供的纳 税 人识别号正确就可以了,你们自己整一下纳 税 人识别号与正确的纳 税 人名称的对应关系就可以了
    这个查询 和上次的那个是类似的,上万条的话,速度应该不至于很慢~
    SELECT
    nsrsbh
    ,SUM(CASE zsxm_dm WHEN'01'THEN se END) Nsrmc
    ,SUM(CASE zsxm_dm WHEN'03'THEN se END) Zzshj
    ,SUM(CASE zsxm_dm WHEN'04'THEN se END) Qysdshj
    ,SUM(se) [合计]
    FROM
    CTE
    WHERE
    nsrsbh IN('130000063135586','130000063135587','130000063135594','130000063123444')
    AND rkrq>='2014-01-01'
    AND rkrq<'2014-04-01'
    GROUP BY
    nsrsbh
    如果名称不一定标准,识别号标准的话,直接用识别号查询,或者 用名称里的部分字符模糊匹配
      

  2.   


    你好,确实类似,您能把税额里如果有负数的数据不参与求和吗?是不是这样:nsrmc in('%天宏有限公司%','%大力有限责任公司%','%喜洋洋超市%','%大华语广告%') 也可以?
      

  3.   

    SELECT
        nsrsbh
        ,SUM(CASE zsxm_dm WHEN'01'THEN se END) Nsrmc
        ,SUM(CASE zsxm_dm WHEN'03'THEN se END) Zzshj
        ,SUM(CASE zsxm_dm WHEN'04'THEN se END) Qysdshj
        ,SUM(se) [合计]
    FROM
        CTE
    WHERE
        (nsrmc LIKE '%天宏有限公司%' OR nsrmc LIKE '%大力有限责任公司%' OR nsrmc LIKE '%喜洋洋超市%' OR nsrmc LIKE '%大华语广告%')
        AND se>0
        AND rkrq>='2014-01-01'
        AND rkrq<'2014-04-01'
    GROUP BY
        nsrsbh模糊要用LIKE~
      

  4.   

    多谢ky_min的耐心指导,明天去单位试试。
      

  5.   

    先把所有公司的各种税收求和都算出来。你要哪个公司的在看看就好了吗。看名称也一看就出来。
    select * from (select  纳税人识别号, 征收项目,sum(税额) as sums  from  sb_zsxx as a 
    where 税额>0 and 申报日期 between '2014-01-01' and '2014-03-31'
    group by  grouping  sets (纳税人识别号,征收项目),(纳税人识别号)) as a join dj_nsrxx as b
    on a.纳税人识别号=b.纳税人识别号