我有以下查询:SQL两行合并为一个
SELECT qn.ID,
qn.Title,
qt.Description,
l.DisplayName AS Language,
COUNT(q.ID) AS QuestionCount
FROM dbo.Questionnaires AS qn
JOIN dbo.QuestionnaireText AS qt ON qn.ID = qt.QuestionnaireID
JOIN dbo.Questions AS q ON q.QuestionnaireID = qn.ID
JOIN dbo.Languages AS l ON l.ID = qt.LanguageID
WHERE (qn.QuestionnaireTypeID = (SELECT ID
FROM QuestionnaireTypes
WHERE Value = 'Quiz'))
GROUP BY qn.ID, qn.Title, l.DisplayName, qt.Description
其如下表输出:
36132A45-F09C-4EB5-9BD2-34A227EC03B9 Test NULL English 1
36132A45-F09C-4EB5-9BD2-34A227EC03B9 Test NULL Spanish 1
24395BC7-A890-4514-AB35-7614E226B2A5 Quiz NULL English 1
24395BC7-A890-4514-AB35-7614E226B2A5 Quiz NULL Spanish 1
03B13E61-6D7F-4597-8BB6-83889C7BFE29 G Quiz NULL English 6
03B13E61-6D7F-4597-8BB6-83889C7BFE29 G Quiz NULL Spanish 6
我需要的是查询到了把以下内容:
36132A45-F09C-4EB5-9BD2-34A227EC03B9 Test NULL English, Spanish 1
24395BC7-A890-4514-AB35-7614E226B2A5 Quiz NULL English, Spanish 1
03B13E61-6D7F-4597-8BB6-83889C7BFE29 G Quiz NULL English, Spanish 6
我现在处于亏损状态。有什么建议么?
有多少种语言? –
告诉我,试图将多个值合并到单个字段中是SQL中的反模式。特别是如果它试图在表示层中涉及数据层的机制。 – MatBailie
将值合并到单个字段仅适用于ssrs报告。我们的应用程序仅支持两种语言,即英语和西班牙语。 '测验'有相同的ID,但有英文和西班牙文版本。该报告将显示报告名称,描述,所有语言都不包含在内的语言以及测验的问题计数。 –