是否存在将多行聚合为一行的Access SQL查询?
我有一张这样的桌子:是否存在将多行聚合为一行的Access SQL查询?,sql,ms-access,Sql,Ms Access,我有一张这样的桌子: A 1 A 2 B 1 B 2 B 3 A 1 2 B 1 2 3 我想生成一个结果集,如下所示: A 1 A 2 B 1 B 2 B 3 A 1 2 B 1 2 3 第一列有问题和其他答案,但每个答案必须在不同的列中。所以我不需要像1,2,3这样的concat在同一列中 期望: Question Answer1 Answer2 Answer3 ... A 1 2 B 1 2 3 是
A 1
A 2
B 1
B 2
B 3
A 1 2
B 1 2 3
我想生成一个结果集,如下所示:
A 1
A 2
B 1
B 2
B 3
A 1 2
B 1 2 3
第一列有问题和其他答案,但每个答案必须在不同的列中。所以我不需要像1,2,3这样的concat在同一列中
期望:
Question Answer1 Answer2 Answer3 ...
A 1 2
B 1 2 3
是否有SQL语句可以执行此操作?我正在使用Access 2007
我的基本查询是:
SELECT questions.Question, answers.Answer
FROM ((base INNER JOIN customers ON base.Patient_ID = customers.Identyfikator) LEFT JOIN answers ON base.answer_ID = answers.ID)
LEFT JOIN questions ON base.question_ID = questions.ID
WHERE (((customers.Identyfikator)=[param_ID]));
是的,您将使用
PIVOT
这是一个exmaple:
SELECT Config_ID
FROM TABLE_01
GROUP BY Config_ID
PIVOT ConfigField
不确定这是否完全正确,因为我没有2007和您的模型要测试,但请尝试以下方法:
SELECT questions.Question, answers.Answer
FROM ((base INNER JOIN customers ON base.Patient_ID = customers.Identyfikator) LEFT JOIN answers ON base.answer_ID = answers.ID)
LEFT JOIN questions ON base.question_ID = questions.ID
WHERE (((customers.Identyfikator)=[param_ID]))
GROUP BY questions.question
PIVOT questions.question;
您需要使用
PIVOT
,但MS Access语法是非标准的。请尝试以下代码:
TRANSFORM questions.Answer
SELECT questions.Question, answers.Answer
FROM ((base INNER JOIN customers ON base.Patient_ID =
customers.Identyfikator) LEFT JOIN answers ON base.answer_ID = answers.ID)
LEFT JOIN questions ON base.question_ID = questions.ID
WHERE (((customers.Identyfikator)=[param_ID]))
GROUP BY questions.question
PIVOT questions.Answer;
我尝试了对您给定的样本数据的查询,得到了预期的结果。这将是一个枢轴查询…@caruzo:我在您的问题中根本看不到这些信息。如果您有详细信息要添加,请编辑您的问题,并在每个人都可以看到的地方进行编辑。请添加该详细信息,没有它很难给您完整的答案。另外,请尝试使用PIVOT命令构建查询,然后发布您尝试过的内容,社区将乐意提供帮助。语法错误,但我不知道在哪里:/It show me fragment with FROM子句,但我认为这很好。。。该死的访问。。。