我有一个RAW_SCORES
表,其中包含许多作业/考试成绩。 RAW_SCORES
中有一行,其中包含每个作业的最高分。
('6410', 'Rivera', 'Rhonda', '315', 64, 64, 28, 85, 98, 152),
('0001', 'MAX', 'POINTS', '415', 100, 80, 32, 100, 120, 200),
我想创建一个过程,为每个作业打印带有(原始分数/最大分数)的表格。因此,对于作业1:
SET hw1M = (SELECT HW1 FROM RAW_SCORES WHERE (SSN = '0001'));
SELECT RAW_SCORES.SSN,
RAW_SCORES.FName,
RAW_SCORES.LName,
ROUND(RAW_SCORES.HW1 / hw1M, 2)
FROM RAW_SCORES WHERE NOT (RAW_SCORES.SSN = '0001' OR RAW_SCORES.SSN = '0002');
为我提供了HW1的正确结果,但是表头显示Round(bla bla bla),问题是希望将其打印为HW1Pct。所以我尝试了:
SET hw1M = (SELECT HW1 FROM RAW_SCORES WHERE (SSN = '0001'));
SET HW1Pct = (SELECT ROUND(RAW_SCORES.HW1 / hw1M, 2) FROM RAW_SCORES WHERE hw1M IN (SELECT HW1 FROM RAW_SCORES WHERE (SSN = '0001')));
SELECT RAW_SCORES.SSN,
RAW_SCORES.FName,
RAW_SCORES.LName,
HW1Pct
FROM RAW_SCORES WHERE NOT (RAW_SCORES.SSN = '0001' OR RAW_SCORES.SSN = '0002');
但这给了我Subquery returns more than 1 row
错误。对该错误的其他大多数答案都是JOIN
语句,但是我不确定在我的情况下如何实现。任何帮助表示赞赏。抱歉,这是一个愚蠢的问题。