Я пытаюсь выполнить вложенный запрос select, но я все время получаю ту же ошибку, говоря, что каждая таблица должна иметь свой собственный псевдоним.
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, и я не могу понять, что я делаю неправильно.
Проблема здесь в том, что вы создали производную таблицу (подзапрос), и ей нужно предоставить псевдоним 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;
Вы можете видеть больше этого на официальной документации здесь в котором говорится, что
Подзапросы являются законными в предложении FROM FROM FROM. Фактический синтаксис:
SELECT... FROM (подзапрос) [AS] name...
Предложение [AS] name является обязательным, поскольку каждая таблица в предложении FROM должна иметь имя. Любые столбцы в списке выбора подзапроса должны иметь уникальные имена.
Вы должны добавить имя в таблицу FROM (выберите.....). Например, добавьте простой псевдоним в виде T
SELECT
Sum(T.SumOfASSIGN_HOURS) AS SumOfSumOfASSIGN_HOURS,
Sum(T.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) T ;
Из чтения вашего запроса, похоже, вы можете пропустить дополнительный запрос. Ваш запрос должен выглядеть следующим образом:
SELECT PROJ_NUM, SUM(ASSIGN_HOURS) AS SumOfASSIGN_HOURS,
SUM(ASSIGN_CHARGE) AS SumOfASSIGN_CHARGE
FROM ASSIGNMENT
GROUP BY PROJ_NUM