【发布时间】:2021-01-13 21:31:26
【问题描述】:
我需要帮助来解决这个问题。
为了获得最终输出,引用了三个表,但需要以非常特定的方式输出。
first表有QID,它们是分发给相应ClassID学生的问卷。 每个 ClassID 对应一个部分,可以让多个学生回答问卷。
second 表具有 RID,它是收到的问卷回复的标识符。 (我使用它来获取按 QID 分组的 RID 的计数,这给了我总响应 - 在输出表中引用为 TotalR,指向 QID/ClassID)
第三个表告诉我们哪些类ClassID是横截面CrossID,这意味着EDU 103是与 EDE 101 相同,因此在计数时应将 EDU 103 和 EDE 101 的响应相加。 (这就是我卡住的地方,因为我不确定如何利用这张桌子。)
最终输出应显示所有 QuestionaireID 及其响应总和。此表列出了所有 QID 及其对应的 ClassID。然而,TotalR 是其中 ClassID = ClassID OR ClassID = CrossID 的 RID 的总和。
表 1 - 问卷调查
| QID | ClassID |
|---|---|
| 21 | CMP 101 |
| 22 | EDU 103 |
| 23 | EDE 101 |
表 2 - 回复
| RID | QID |
|---|---|
| 12 | 21 |
| 13 | 22 |
| 14 | 23 |
| 15 | 21 |
| 16 | 23 |
表 3 - 交叉课程
| ClassID | CrossID |
|---|---|
| EDU 103 | EDE 101 |
| EDE 101 | EDU 103 |
期望的输出
| QID | ClassID | TotalR |
|---|---|---|
| 21 | CMP 101 | 2 |
| 22 | EDU 103 | 3 |
| 23 | EDE 101 | 3 |
【问题讨论】:
标签: sql sql-server