sql如何将列转化为行

        这几天一直有个问题困扰了我好一阵子,终于在朋友的帮助下解决了;问题是这样的一张表里有多个用户编号,并且用户编号不是唯一的,也有多个项目类型(已办项目,在办项目,待办项目),一个用户可以对应多个工具箱类型,多个用户也对应多个项目类型(已办项目,在办项目,待办项目),列表如下:
编号    项目类型      任务编号  用户编号
10010 已办项目 RW001 GH01
10011 在办项目 RW002 GH02
10020 已办项目 RW005 GH05
10013 已办项目 RW004 GH04
10014 在办项目 RW005 GH03
10015 待办项目 RW006 GH01
10016 在办项目 RW007 GH01
10017 在办项目 RW008 GH01
10019 待办项目 RW003 GH05
本人希望得到的结果是一个用户所对应的项目类型个数找出来,比如说GH01用户的已办项目,在办项目,待办项目分别有多少个GH02用户所对应的用户分别是多少个,将其一一对应:
用户名 待办项目 在办项目 已办项目
鲍泳寰   0    0    1
李丹妮   0    1    0
徐建   1    0    1
袁浩正   1    2    1
赵霞   0    1    0
解决思路:将列转化为行
代码:
select 用户名,
count(case when 项目类型='待办项目' then 'value' end) as 待办项目, 其中value无实际意义
count(case when 项目类型='在办项目' then 'value' end) as 在办项目,
count(case when 项目类型='已办项目' then 'value' end) as 已办项目
from 工作箱,用户信息表 where 工作箱.用户编号=用户信息表.用户编号
group by 用户名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值