如何在SQL/DB2中使用透视?

drnojrws  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(191)

如果我有两个表,如何在DB2(或SQL)中使用透视?
表一
| 用户标识|使用者名称|
| - -|- -|
| 第001章|麦克|
| 002年|托姆|
| 003年|苏塞|
表二
| 用户标识|访问日期|项目|
| - -|- -|- -|
| 第001章|2021年10月1日|面包|
| 第001章|2021年10月1日|朱古力|
| 第001章|2021年10月3日|意大利面食|
| 002年|2021年10月6日|比萨饼|
| 002年|2021年10月8日|摄影机|
| 002年|2021年10月8日|USB记忆棒|
| 002年|2021年10月22日|手套|
| 002年|2021年11月4日|劈木|
我需要这样的输出
输出量
| 用户标识|使用者名称|月份|项目1|项目2|第3项|项目4|
| - -|- -|- -|- -|- -|- -|- -|
| 第001章|麦克|十月二十一日|面包|朱古力|意大利面食||
| 002年|托姆|十月二十一日|比萨饼|摄影机|USB记忆棒|手套|
| 002年|托姆|十一月二十一日|劈木||||
谢谢你,谢谢你

wgx48brx

wgx48brx1#

您可以按此处所述创建一个通用存储过程。
相应的称呼:

call pivot
(
  'SELECT B.USERID, A.USERNAME, TO_CHAR (B.DATE_VISIT, ''Month YY'') AS MONTH, B.ITEM, ''ITEM'' || ROW_NUMBER () OVER (PARTITION BY B.USERID, A.USERNAME, TO_CHAR (B.DATE_VISIT, ''Month YY'') ORDER BY B.ITEM) AS ITEM_NM FROM TABLE1 A JOIN TABLE2 B ON B.USERID = A.USERID'
, 'USERID, USERNAME, MONTH'
, 'ITEM_NM'
, 'ITEM'
, 'max'
, 'session.tab1'
, '-'
, ?, ?, ?
);

相关问题