Tsql 提取数据时SQL一对多关系问题

Tsql 提取数据时SQL一对多关系问题,tsql,stored-procedures,sql-server-2008-r2,Tsql,Stored Procedures,Sql Server 2008 R2,我对一个问题有疑问: 对于任何给定的IntakeQCID,我有很多IntakeQCDetailID,还有很多问题和答案。现在我需要将每个问题和答案选在一个单独的栏中 类似这样的工作原理: SSELECT IntakeQC.IntakeQCID, IntakeQC.PalletID, Max(CASE WHEN QCProductQuestions.QCQuestionID = 106 THEN CAST(Answer AS varchar(10)) ELSE '' END) AS Ar

我对一个问题有疑问:

对于任何给定的
IntakeQCID
,我有很多
IntakeQCDetailID
,还有很多问题和答案。现在我需要将每个问题和答案选在一个单独的栏中

类似这样的工作原理:

SSELECT     IntakeQC.IntakeQCID, IntakeQC.PalletID, Max(CASE WHEN QCProductQuestions.QCQuestionID = 106 THEN CAST(Answer AS varchar(10)) ELSE '' END) AS ArrivalTemperature
FROM         QCProductQuestions INNER JOIN
                      IntakeQCDetails ON QCProductQuestions.QCProductQuestionID = IntakeQCDetails.QCProductQuestionID INNER JOIN
                      IntakeQC ON IntakeQCDetails.IntakeQCID = IntakeQC.IntakeQCID INNER JOIN
                      QCQuestions ON QCProductQuestions.QCQuestionID = QCQuestions.QCQuestionID
WHERE     (QCProductQuestions.Intake = 1) AND (IntakeQC.IntakeQCID = 9413) AND (IntakeQCDetails.Answer <> '')
Group By IntakeQC.IntakeQCID, IntakeQC.PalletID
s选择IntakeQC.IntakeQCID,IntakeQC.PalletID,Max(当QCProductQuestions.QCQuestionID=106时的情况),然后将其转换为ArrivalTemperature(答案为varchar(10)),否则“结束”)
从内部联接
IntakeQCDetails ON QCProductQuestions.QCProductQuestionID=IntakeQCDetails.QCProductQuestionID内部联接
IntakeQCDetails.IntakeQCID=IntakeQC.IntakeQCID内部连接上的IntakeQC
QCProductQuestions.QCQuestionID=QCQuestions.QCQuestionID上的QCQuestions
其中(QCProductQuestions.Intain=1)和(IntakeQC.IntakeQCID=9413)和(IntakeQCDetails.Answer'')
按IntakeQC.IntakeQCID、IntakeQC.PalletID分组
以下是输出:

如果我不这样做,如果一个特定的
IntakeQCID
有20个QC问题,我会得到20行数据,我只想要一行

然而问题是,我的范围内有170多个问题,我必须为每一个问题都这样做。有没有更优雅的方式来实现这一点


任何帮助、想法或建议都将不胜感激

我相信这可以帮到你
也许您可以为表提供一个DDL,这样我们就可以更容易地测试您的代码和其他内容

谢谢您的建议
PIVOT
是答案,但您可能需要为它动态定义列。从长远来看,您会发现让SQL以上述表格形式(固定列、多行)返回数据,然后使用电子表格或报告工具来管理数据的格式和表示更容易。例如,这只是Excel中的一个简单透视表。也许您可以在链接中添加解决方案的说明。不幸的是,我的目标是为每个答案创建一个单独的列,而不是像您的答案所建议的那样将所有结果连接到一个列中。我相信在这种情况下,
PIVOT
是最好的解决方案。