我正在尝试执行嵌套的选择查询,但我不断收到同样的错误,说每个表都必须有自己的别名。
SELECT
Sum(SumOfASSIGN_HOURS) AS SumOfSumOfASSIGN_HOURS,
Sum(SumOfASSIGN_CHARGE) AS SumOfSumOfASSIGN_CHARGE
FROM (
SELECT ASSIGNMENT.PROJ_NUM, SUM(ASSIGNMENT.ASSIGN_HOURS) AS SumOfASSIGN_HOURS,
SUM(ASSIGNMENT.ASSIGN_CHARGE) AS SumOfASSIGN_CHARGE
FROM (ASSIGNMENT)
GROUP BY ASSIGNMENT.PROJ_NUM);
我是MYSQL的新手,我无法弄清楚我做错了什么。
答案 0 :(得分:0)
这里的问题是你创建了一个派生表(子查询),并且必须给它别名AS aliasName
或其他任何东西。只需在您的子查询中提供别名,如下所示,您应该没问题。
SELECT
Sum(aliasName.SumOfASSIGN_HOURS) AS SumOfSumOfASSIGN_HOURS,
Sum(aliasName.SumOfASSIGN_CHARGE) AS SumOfSumOfASSIGN_CHARGE
FROM(
SELECT ASSIGNMENT.PROJ_NUM, SUM(ASSIGNMENT.ASSIGN_HOURS) AS
SumOfASSIGN_HOURS,SUM(ASSIGNMENT.ASSIGN_CHARGE) AS SumOfASSIGN_CHARGE
FROM ASSIGNMENT
GROUP BY ASSIGNMENT.PROJ_NUM
) aliasName;
您可以在官方文档here上看到更多内容,其中包含
子查询在SELECT语句的FROM子句中是合法的。实际语法是:
SELECT ... FROM(子查询)[AS]名称......
[AS] name子句是必需的,因为FROM子句中的每个表都必须具有名称。子查询选择列表中的任何列都必须具有唯一的名称。
答案 1 :(得分:0)
通过阅读您的查询,您似乎可以跳过子查询。您的查询应如下所示:
SELECT PROJ_NUM, SUM(ASSIGN_HOURS) AS SumOfASSIGN_HOURS,
SUM(ASSIGN_CHARGE) AS SumOfASSIGN_CHARGE
FROM ASSIGNMENT
GROUP BY PROJ_NUM
答案 2 :(得分:0)
您必须在FROM(选择.....)表中添加名称,例如添加一个简单的别名为T
e 38088 i 20283 w 8390 b 5293 q 191
t 30897 s 18831 m 7686 p 5275 z 161
o 24944 r 16751 c 7301 k 3207
a 24873 d 15567 y 7139 v 2551
n 21510 l 12780 g 7109 j 751
h 20360 u 9624 f 6499 x 439