是否存在将多行聚合为一行的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子句,但我认为这很好。。。该死的访问。。。