一张表中有根据字段A的不同类别进行分类然后横向合并为一张新的表

TangDongYao 2016-11-01 04:55:40
...全文
206 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
道素 2016-11-02
  • 打赏
  • 举报
回复

;WITH tb(rq,dl,jzrc,jzlw)AS (
	SELECT '201608',N'MDT',4,160.0 UNION ALL
	SELECT '201601',N'普通门诊',2,180.0 UNION ALL
	SELECT '201602',N'普通门诊',2,330
)
SELECT * FROM (
    SELECT rq,data_title,data_value FROM tb
     CROSS APPLY(VALUES(dl+N'_人次',jzrc),(dl+N'_积分',jzlw)) i(data_title,data_value)
) AS t
PIVOT(MAX(data_value) FOR data_title IN (MDT_人次,MDT_积分,普通门诊_人次,普通门诊_积分)) u
/*
rq     MDT_人次                                  MDT_积分                                  普通门诊_人次                                 普通门诊_积分
------ --------------------------------------- --------------------------------------- --------------------------------------- ---------------------------------------
201608 4.0                                     160.0                                   NULL                                    NULL
201601 NULL                                    NULL                                    2.0                                     180.0
201602 NULL                                    NULL                                    2.0                                     330.0
*/
中国风 2016-11-01
  • 打赏
  • 举报
回复
表头的显示应该放在程序去实现不是在数据库去处理 数据库接口用行转列 参照 行列互转_整理贴3

703

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧