没理解透!
属于A区的操作员
操作员表COMMON_OPERATERS:
id  name  department
1   gss   2320200000
--------------------------
有区的信息吗?

解决方案 »

  1.   

    --测试表
    create table T_NSRQY( --纳税人区域表
    QYDM varchar(16) not null, --区域代码
    QYMC varchar(60) not null) --区域名称,与T_DRAWENCASHINFO 中地C_NSRQYDM相同     
    insert into T_NSRQY
    select '0201','地税局第一分局'
    union all select '020101','地税局第一分局A科室'
    union all select '0301','地税局第二分局'
    union all select '03','地税局'
    union all select '02','地税局'
    union all select '04','地税局4'
    union all select '0401','其他地税局'CREATE  TABLE T_DRAWENCASHINFO( --即开即兑兑奖信息
    C_ENCASH INT NOT NULL, --兑奖奖金金额
    C_CZYFJDM VARCHAR(15) NOT NULL, --操作员分局代码 兑奖地区
    C_NSRQYDM VARCHAR(15) NOT NULL) --纳税人所属区域代码  开票地区)
    insert into T_DRAWENCASHINFO
    select 100,'2320200000','0201'
    union all select 50,'2320200000','0401'
    union all select 20,'2320200110','02'
    union all select 50,'2320200000','03'
    union all select 10,'2320200000','020101'create table COMMON_OPERATERS( --操作员表
    id int,
    name varchar(10),
    department varchar(10),
    QYDM varchar(16) not null)
    insert into COMMON_OPERATERS
    select 1,'gss','2320200000','02'
    go--查询处理
    select id,name
    ,给其他区所兑的奖金=sum(case when not(C_NSRQYDM like b.QYDM+'__') then C_ENCASH else 0 end)
    ,他自己所对地奖金=sum(case when C_NSRQYDM like b.QYDM+'__' then C_ENCASH else 0 end)
    from T_DRAWENCASHINFO a
    join COMMON_OPERATERS b on a.C_CZYFJDM=b.department
    join T_NSRQY c on a.C_NSRQYDM=c.QYDM
    group by id,name
    godrop table T_NSRQY,T_DRAWENCASHINFO,COMMON_OPERATERS/*--测试结果id          name       给其他区所兑的奖金   他自己所对地奖金    
    ----------- ---------- ----------- ----------- 
    1           gss        110         100(所影响的行数为 1 行)
    --*/
      

  2.   

    不好意思给个位声明一下,我用的是sybase 数据库,
    大家可以先不考虑操作员,只考虑地区就行了。
    所谓的department 就是地区编号,0101,0102....等等,
    把那个2320200000删掉即可,^_^
    不好意思,麻烦大家了。
    给个思路吧。
    ......
    再次谢谢楼上各位,特别是邹建大哥,小弟在此感谢......
      

  3.   

    我的SQL Server的方法是可行的。只要你将它变成sybase的方法就行了。