另一个 PowerBI 问题:我有三个表处理报名参加活动的人:
活动
EventId (PK)
Event Name
Event Date
活动报名
EventRegistrationId (PK)
EventId (FK to Event)
Registration Date
First Name
Last Name
E-Mail
活动报名解答
ID (PK)
Event Registration (FK to EventRegistration)
Field Name
Value
事情是这样的:活动注册是基于 Web 表单进行的,活动经理可以随意设计该表单,并且可以包含几乎任何类型的问题来询问注册者,因此
EventRegistrationAnswers
表可能包含任意数量的答案(在注册时给出),并且对于每个事件,答案可能不同。
因此,对于 Id=4711 的活动注册,我可能会有这样的答案 - 有些是自由文本字段,有些是从下拉列表中选取的值,有些是是/否复选框:
身份证 | 活动注册ID | 字段名称 | 价值 |
---|---|---|---|
123 | 4711 | 称呼 | 先生 |
124 | 4711 | 确定存储数据 | 是的 |
125 | 4711 | 订阅时事通讯 | 没有 |
126 | 4711 | 到达 | 乘坐公共交通工具 |
我的任务是这样的:
Event
表 - 工作正常)我尝试对“事件注册答案”表应用“透视列”操作,该操作将数据转换为一个表,其中的列名称基于原始表的“字段名称”列 - 到目前为止 - 一切顺利。 但是这也会将给定的每个答案的数据转换为一行 - 因此对于单个注册,我会为每个给定的答案得到一行,其中一列有一个值 - 像这样:
活动注册ID | 称呼 | 确定存储数据 | 订阅时事通讯 | 到达 |
---|---|---|---|---|
4711 | 先生 | (空) | (空) | (空) |
4711 | (空) | 是的 | (空) | (空) |
4711 | (空) | (空) | 没有 | (空) |
4711 | (空) | (空) | (空) | 乘坐公共交通工具 |
现在,如果我将
EventRegistration
表合并到这个数据透视表,基于 EventRegistrationId
,我会为每个注册获得多行 - 而我真的希望每个注册有一个 单行,所有四个提供各自(非 NULL)值的列。
我有什么想法可以做到这一点吗?不知怎的,我似乎无法真正影响“PIVOT COLUMN”操作很多......而且我还没有找到一种方法来“压缩”这四行 - 每列只有一列填充一个值 - 成一个单一的所有列都具有非 NULL 值的行...(我查看了
GROUP BY
和其他内容,但似乎没有什么符合我的要求)
有什么想法吗?
在旋转
EventRegistrationAnswers
之前,放下/移除 EventRegistrationId
列。