ORACLE 行列转换问题

sbeg571 2018-10-24 11:40:19
使用 (DECODE ( ZSL,1, SXX||SL,NULL ) 数量最多, 进行了行列转换,出现了许多为空的情况,

YHKH ZSL ZPZ ZJE 数量最多 次数最多 金额最多
4737553 1 1 5 04700-非诺贝特片4 04700-非诺贝特片1
000130 1 1 2 中药饮片50 中药饮片1
000089 4 1 4 29815-大山楂丸1
4738154 5 1 5 27437-枸橼酸莫沙必利分散片1
4738406 20 1 11 27133-多潘立酮片1
4738154 1 2 1 27513-双姜胃痛丸27 27513-双姜胃痛丸1015.92
4737553 2 2 1 11995-辛伐他汀片51
000130 2 2 1 02109-天和追风膏75
000089 3 2 3
4738406 21 2 20
000089 2 3 2
4738154 2 3 3
4737553 3 3 3
4738406 22 3 4
000089 1 4 1 16395-妇炎康软胶囊3 16395-妇炎康软胶囊71.52
4738154 3 4 4
请教程各位大佬,如何不显示空行
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2018-10-24
  • 打赏
  • 举报
回复
没看懂这些数据。 建议楼主把用 excel 画一下源数据,再画一下预期结果。 大家好帮助你!
nayi_224 2018-10-24
  • 打赏
  • 举报
回复
行列转换可不是( DECODE ( ZSL,1, SPXX||SL,'')) 这么写的。 你下面的两个结果集只差了一个max
sbeg571 2018-10-24
  • 打赏
  • 举报
回复
原表数据
人员编码 数量排名 次数排名 金额排名
000130 1 1 2
4737553 1 1 5
4738154 1 2 1
000089 1 4 1
4738406 1 24 8
4737553 2 2 1
000130 2 2 1
4738406 3 25 1
000089 4 1 4
4738154 5 1 5
4738406 20 1 11

使用DECODE进行行列转换
SELECT YHKH,
( DECODE ( ZSL,1, SPXX||SL,'')) 数量最多,
( DECODE ( ZPZ,1, SPXX||PZ,'')) 次数最多,
( DECODE ( ZJE,1, SPXX||JE,'' )) 金额最多
from 表名
得出结果
YHKH 数量最多 次数最多 金额最多
000130 中药饮片50 中药饮片1
4737553 04700-非诺贝特片4 04700-非诺贝特片1
4738154 27513-双姜胃痛丸27 27513-双姜胃痛丸1015.92
000089 16395-妇炎康软胶囊3 16395-妇炎康软胶囊71.52
4738406 中药饮片25
4737553 11995-辛伐他汀片51
000130 02109-天和追风膏75
4738406 03625-利咽解毒颗粒139.2
000089 29815-大山楂丸1
4738154 27437-枸橼酸分散片1
4738406 27133-多潘立酮片1

想实现结果

人员编码 数量最多 次数最多 金额最多
000130 中药饮片50 中药饮片1 02109-天和追风膏75
4737553 04700-非诺贝特片4 04700-非诺贝特片1 11995-辛伐他汀片51
4738154 27513-双姜胃痛丸27 27437-枸橼酸莫沙必利分散片1 27513-双姜胃痛丸1015.92
000089 16395-妇炎康软胶囊3 29815-大山楂丸1 16395-妇炎康软胶囊71.52
4738406 中药饮片25 27133-多潘立酮片1 03625-利咽解毒颗粒139.2


17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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