我的数据库中有这两个表,如您所见,它们具有1-> N关系。
这是每个在特定日期回答问卷的参与者的日志,
在每个日期,参与者可以回答3个调查表M(早晨)N(中午)E(晚上),并且每个调查表都包含编号为(1,2,3 ..)的问题。
注意:参与者的唯一键是参与者ID忽略研究和组ID
我需要的结果是:



如您所见,每个调查表可能有不同数量的问题(早上问题包含4个,中午问题包含3个,晚上问题包含2个)。

最佳答案

您正在尝试使用行数据并将其转换为列(枢轴),即每个日期/时间/问题将成为所需输出中的一列。

当要透视的数据不是恒定或不可枚举时,这通常很难在SQL中完成,即使不是不可能。

在这些情况下,您需要做的是从报告层访问数据并在报告级别进行数据透视,例如在SSRS或Qlikview中可以做的那样。

如我在评论中所述,如果您没有报告层,则始终可以将数据下载到电子表格并创建数据透视表。如果您需要了解如何在Excel中转​​换,可以在网上进行搜索,并且会找到许多教程,例如本教程:

https://support.office.com/en-gb/article/Quick-start-Create-a-PivotTable-report-0c220f35-e478-49aa-beaf-24018b7f0f64

您还可以使用其他电子表格软件(例如LibreOffice)来创建数据透视表:

https://help.libreoffice.org/Calc/Creating_Pivot_Tables

10-06 12:52
查看更多