【发布时间】:2021-10-20 12:45:53
【问题描述】:
如果我有 2 个表,如何在 DB2(或 SQL)中使用数据透视?
表1
| Userid | Username |
|---|---|
| 001 | Mike |
| 002 | Tomm |
| 003 | Suse |
表2
| Userid | Date_visit | item |
|---|---|---|
| 001 | 2021-10-01 | bread |
| 001 | 2021-10-01 | chocolate |
| 001 | 2021-10-03 | pasta |
| 002 | 2021-10-06 | pizza |
| 002 | 2021-10-08 | camera |
| 002 | 2021-10-08 | usb-stick |
| 002 | 2021-10-22 | gloves |
| 002 | 2021-11-04 | split logs |
我需要这样的输出
输出
| Userid | Username | month | item1 | item2 | item3 | item 4 |
|---|---|---|---|---|---|---|
| 001 | Mike | October 21 | bread | chocolate | pasta | |
| 002 | Tomm | October 21 | pizza | camera | usb-stick | gloves |
| 002 | Tomm | November 21 | split logs |
谢谢!
【问题讨论】:
-
在 SQL 查询中,您需要提前知道结果列的数量。你的情况是这样的吗(第 1-4 项)?如果不是,则需要运行初始查询来确定这一点,然后您可以根据初始查询组装动态 SQL。
-
感谢您回答穿刺者。不,结果列的数量是未知的。您知道我如何将如此命名的初始查询与动态 SQL 结合起来吗?
-
这能回答你的问题吗? Pivoting in DB2
-
您好查尔斯,感谢您的回答。建议的主题没有回答我的问题,项目名称是已知的,在我的表中它可以是所有内容。我只需要在每个月分组的一行中列出所有购买项目。谢谢。