项目部门 金额
主营业务收入 单位1 6000
业务利润 单位1 2000
营业费用 单位1 1000
主营业务收入 单位2 8000
业务利润 单位2 2500
营业费用 单位2 1300
主营业务收入 单位3 5400
业务利润 单位3 900
营业费用 单位3 500

解决方案 »

  1.   

    排版不好,Sorry
    有这样一个记录集,有三个字段:项目、部门、金额
    项目 部门 收入
    主营业务收入 单位1 6000
    业务利润      单位1 2000
    营业费用      单位1 1000
    主营业务收入 单位2 8000
    业务利润      单位2 2500
    营业费用    单位2 1300
    主营业务收入 单位3 5400
    业务利润          单位3 900
    营业费用          单位3 500如果这样在水晶报表中显示,有点不好看,我想如下显示
    项目 单位1 单位2 单位3
    主营业务收入 6000 8000 5400
    业务利润  2000 2500 900
    营业费用      1000 1300 500请问应该怎样作。
    其中部门数不定,不一定只有3个.
      

  2.   

    得回家了,没时间看
    给你几个例子:
    --测试如下:
    create table ztable(项目 int, 日期 varchar(10),单号 int,品名 varchar(50),数量 int)
    insert into ztable select 1,'4-9' ,18, '電板', 1500
    insert into ztable select 2,'4-10',8 , '模組', 900
    insert into ztable select 3,'4-11',18, '模組', 1500
    insert into ztable select 4,'4-14',17, '電板', 1500 
    declare @sql varchar(8000)set @sql='select 项目,日期,单号'
    select @sql = @sql + ',sum(case 品名 when '''+品名+''' then 数量 else 0 end) as '+品名
      from (select distinct 品名 from ztable) as a
    select @sql = @sql+' from ztable group by 项目,日期,单号'exec(@sql)
    drop table ztable-- 结果如下:-- 项目          日期         单号          電板          模組          
    -- ----------- ---------- ----------- ----------- ----------- 
    -- 1           4-9        18          1500        0
    -- 2           4-10       18          0           900
    -- 3           4-11       18          0           1500
    -- 4           4-14       17          1500        0
      

  3.   

    2:
    declare @ table(department nvarchar(50), goodsname nvarchar(50),quantity int)
    insert into @ values('部门M' ,     '货品A'   ,            '100')
    insert into @ values('部门M' ,     '货品B'   ,            '3000')
    insert into @ values('部门N' ,     '货品C'   ,            '5')
    insert into @ values('部门N' ,     '货品B'   ,            '200')要得到结果:
    department     货品A        货品B    货品C         
    ------------- ---------- --------- --------- 
    部门M          100         3000        0
    部门N          0           200         5select * into temp from @
    declare @sql varchar(8000)
    set @sql = 'select department'
    select @sql = @sql + ',sum(case goodsname when '''+goodsname+''' then quantity else 0 end) as '+goodsname
      from (select distinct goodsname from temp) as a
    select @sql = @sql+' from temp group by department'exec(@sql)drop table temp