Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何修复';子查询返回超过1行';使用变量表_Mysql - Fatal编程技术网

Mysql 如何修复';子查询返回超过1行';使用变量表

Mysql 如何修复';子查询返回超过1行';使用变量表,mysql,Mysql,我有一个表原始分数,其中包含一系列家庭作业/考试分数。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

我有一个表
原始分数
,其中包含一系列家庭作业/考试分数。
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');

但是这给了我
子查询返回超过1行的错误。这个错误的大多数其他答案是一个
JOIN
语句,但我不确定在我的例子中如何实现它。感谢您的帮助。抱歉,这是一个愚蠢的问题。

只需在原始查询中添加列别名即可:

ROUND(RAW_SCORES.HW1 / hw1M, 2) AS HW1Pct