【发布时间】:2014-08-16 01:17:14
【问题描述】:
我有以下数据结构:
问题表
QuestionID | Question | Error
1 Who? 1
2 What? 0
3 When? 1
4 Who? 1
QuestionID 是 int,Question 是 varchar,Error 是位域。
用户统计表
User | QuestionID
Mary 1
Joe 2
Mary 3
Mary 1
User 是 varchar,QuestionID 是 int。
我正在尝试设计两个查询。
在第一个查询中,我试图按问题分组,然后说谁?已经回答错了两次,什么时候?回答错了一次,为什么不报告任何事情?因为它没有错误的答案。这是我到目前为止所拥有的,一切正常,但我很难不包括什么?结果中的问题,目前它返回“0”并包含在结果中:
SELECT 'Question - ' +[Question] + ' - Answered Wrong ' +
CAST(SUM(CONVERT(INT, Error)) as varchar) + 'Times' As Report
FROM [Questions]
GROUP BY [Question];
在我的第二个查询中,我试图通过 QuestionID 列关联这些表。本质上,试图说 Mary 回答了 QuestionID 1 两次错误,并且 QuestionID 3 错误了一次。我还没有任何关于该查询的信息。此查询预期的完整字符串类似于:
"Mary Answered Question Who? Wrong 2 Times"
"Mary Answered Question When? Wrong 1 Times"
乔没有任何问题,因为他没有回答任何错误。
SQL Server 2012,我无法控制数据结构。蒂亚!
【问题讨论】:
-
你需要添加一个WHERE子句..
FROM [Questions] WHERE Error > 0 GROUP BY [Question];
标签: sql sql-server sql-server-2012