另一个 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
事情是这样的:活动注册是基于网络表单进行的,活动经理可以随意设计该表单,并且可以包含几乎任何类型的问题来询问注册者,因此该EventRegistrationAnswers
表可以包含任意数量的答案(在注册时给出),对于每个事件,这可能会有所不同。
因此,对于 Id=4711 的事件注册,我可能会有这样的答案 - 有些是自由文本字段,有些是从下拉列表中选取的值,有些是是/否复选框:
ID | 事件注册ID | 字段名称 | 价值 |
---|---|---|---|
123 | 4711 | 称呼 | 先生 |
124 | 4711 | 确定存储数据 | 是的 |
125 | 4711 | 订阅时事通讯 | 不 |
126 | 4711 | 到达 | 乘坐公共交通工具 |
我的任务是这样的:
- 组织活动的人希望从列表中选择他们的活动(由切片器根据表格处理
Event
- 工作正常) - 然后,他们希望查看该活动的所有注册,包括注册表单上给出的所有答案
我尝试对“事件注册答案”表应用“透视列”操作,该操作将数据转换为一个表,其中的列名称基于原始表的“字段名称”列 - 到目前为止 - 效果很好。但这也会将给定的每个答案的数据转换为一行 - 因此对于单个注册,我会为给定的每个答案获取一行,其中一列有一个值 - 如下所示:
事件注册ID | 称呼 | 确定存储数据 | 订阅时事通讯 | 到达 |
---|---|---|---|---|
4711 | 先生 | (无效的) | (无效的) | (无效的) |
4711 | (无效的) | 是的 | (无效的) | (无效的) |
4711 | (无效的) | (无效的) | 不 | (无效的) |
4711 | (无效的) | (无效的) | (无效的) | 乘坐公共交通工具 |
现在,如果我将EventRegistration
表合并到这个数据透视表,基于EventRegistrationId
,我会为每个注册获得多行 - 虽然我真的希望每个注册都有一行,所有四列提供各自的(非 NULL)价值。
我有什么想法可以做到这一点吗?不知何故,我似乎无法真正影响“PIVOT COLUMN”操作很多......而且我还没有找到一种方法来“压缩”这四行 - 每列只有一列填充一个值 - 成一个单一的所有列都具有非 NULL 值的行...(我查看了GROUP BY
其他内容,但似乎没有什么符合我的要求)
有任何想法吗?
在进行旋转之前
EventRegistrationAnswers
,请放下/移除该Id
列。