请教大家一个问题 
我有这么一张表格合同号码 客户名称 金额 经办人 部门 合同类型 备注 服务费
012018564 航天信息科技有限公司 12000.00  Test 商务三部 合同 5000.00 
012018543 航天信息科技有限公司 4346.00  Test 商务三部 合同
现在我想实现的结果是 
如果服务费那列有数据的话  我就将该列进行拆分
合同号码 客户名称 金额 经办人 部门 合同类型 备注 服务费
012018564 航天信息科技有限公司 7000.00  Test 商务三部 合同 5000.00 
012018564 航天信息科技有限公司 5000.00  Test 商务三部 合同 5000.00 
012018543 航天信息科技有限公司 4346.00  Test 商务三部 合同
请教大家应该怎么做呢???
在线等答复!!!

解决方案 »

  1.   

    select 合同号码,客户名称,case when 服务费 is not null then 金额-服务费 end  金额,经办人,部门 ,合同类型,备注,服务费 from 表
    union all
    select 合同号码,客户名称,服务费 金额,经办人,部门 ,合同类型,备注,服务费 from 表 where 服务费 is not null 
      

  2.   

    select 合同号码,客户名称,case when 服务费 is not null then 金额-服务费 end  金额,经办人,部门 ,合同类型,备注,服务费 from 表
    union all
    select 合同号码,客户名称,服务费 金额,经办人,部门 ,合同类型,备注,服务费 from 表 where 服务费 is not null order by 合同号码
      

  3.   


    IF OBJECT_ID('T_CSDN_ONE') IS NOT NULL
    BEGIN
    DROP TABLE T_CSDN_ONE;
    END
    GO
    CREATE TABLE T_CSDN_ONE
    (
       
       HTHM VARCHAR(50),
       KHMC VARCHAR(50),
       JE DECIMAL(12,2),
       JBR VARCHAR(20),
       BM VARCHAR(50),
       BZ VARCHAR(50),
       FWF DECIMAL(12,2)
    )
    INSERT INTO T_CSDN_ONE
    SELECT '012018564','航天信息科技有限公司',12000.00,'Test','商务三部','合同',5000.00 
    UNION ALL
    SELECT '012018543','航天信息科技有限公司',4346.00,'Test','商务三部','合同',NULLSELECT * FROM (
    SELECT HTHM,KHMC,JE-ISNULL(FWF,0) AS JE,JBR,BM,BZ,FWF FROM T_CSDN_ONE
    UNION ALL
    SELECT  HTHM,KHMC,FWF AS JE,JBR,BM,BZ,FWF FROM T_CSDN_ONE WHERE FWF IS NOT NULL
    ) T ORDER BY T.HTHM DESC
      

  4.   

    select 合同号码,客户名称,case when 服务费>0 then 金额-服务费 else 金额 end 金额,经办人,部门 ,合同类型,备注,服务费 from aahetong
    union all
    select 合同号码,客户名称,服务费 金额,经办人,部门 ,合同类型,备注,服务费 from aahetong where 服务费 is not null order by 合同号码这个行了,测试过了