select 分店名称
,太阳镜_销售量=sum(case 眼镜类型 when '太阳镜' then 销售量 else 0 end)
,太阳镜_库存量=sum(case 眼镜类型 when '太阳镜' then 库存量 else 0 end)
,隐型眼镜_销售量=sum(case 眼镜类型 when '隐型眼镜' then 销售量 else 0 end)
,隐型眼镜_库存量=sum(case 眼镜类型 when '隐型眼镜' then 库存量 else 0 end)
,老花镜_销售量=sum(case 眼镜类型 when '老花镜' then 销售量 else 0 end)
,老花镜_库存量=sum(case 眼镜类型 when '老花镜' then 库存量 else 0 end)
from 表
group by 分店名称

解决方案 »

  1.   

    --如果眼镜类型不固定declare @s varchar(8000)
    set @s=''
    select @s=@s+',['+眼镜类型+'_销售量]=sum(case 眼镜类型 when '''+眼镜类型+''' then 销售量 else 0 end),['+
    眼镜类型+'_库存量]=sum(case 眼镜类型 when '''+眼镜类型+''' then 库存量 else 0 end)'
    from 表
    group by 眼镜类型
    exec('select 分店名称'+@s+'
    from 表
    group by 分店名称')
      

  2.   

    to: zjcxc(邹建)
    分店名称有一百多个,眼镜类型也有几十个类型,都这样处理吗?请问:还有没有其它方法
      

  3.   

    用Analysis Service销售量 库存量 是两个度量值
    眼睛类型 分店 是两个维度写MDX做结果。