问题描述
问题 1:我有一个包含以下结构和数据的表格:
Question 1: I have a table with the below structure and data:
我想以下列格式显示这些记录:
I want to display these records in the below format:
我知道我需要使用交叉表/枢轴查询来获得此显示.为此,我根据我对它的有限知识进行了尝试.以下是我的查询:
I know I need to use crosstab/pivot query to get this display. For this I tried it based on the limited knowledge that I have about it. Following is my query:
基于这个查询,我得到了以下显示:
And based on this query I got the below display:
任何人都可以帮助我进行适当的更改,我需要对我的查询进行适当的更改,以获取单行中的记录,而不是上面的多行.
Can anyone help me with the proper changes that I need to make to my query to get the records in one single row and not multiple rows as above.
问题 2: 还有一种方法可以获取特定字段的值作为列的名称.正如你在上面看到的,我有 user_input1
, user_input2
,... 作为标题.相反,我希望将 customer_attribute
中的值作为列的标题.
Question 2: Also is there a way to get the value of a particular field as the NAME of the column. As you can see above I have user_input1
, user_input2
,... as the header. Instead of that I want to have the values in customer_attribute
as the header of the columns.
为此,我检查了 NAME_CONST(name,value)
如下:
For this I checked NAME_CONST(name,value)
as below:
但它给出了错误
需要帮助.
推荐答案
虽然@John 的静态答案效果很好,但如果您要转换的列数未知,我会考虑使用准备好的语句来获得结果:
While @John's static answer works great, if you have an unknown number of columns that you want to transform, I would consider using prepared statements to get the results:
参见SQL Fiddle with Demo
至于您的第二个,请澄清您正在尝试做的事情尚不清楚.
As far as your second, please clarify what you are trying to do it is not clear.
这篇关于mysql 数据透视表/交叉表查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!