Мне нужно извлечь информацию из таблицы и рассчитать комиссию продавца.SQL Server: column is Invalid
SELECT
s.st_staffno as "Staff Number", s.st_name as "Staff Name",
s.st_position as "Job Title",
COUNT(r.ren_moveindate) as "Properties Rented",
s.st_salary * s.st_commperc/100 as "Commission"
FROM
dbo.staff s
INNER JOIN
dbo.rental r ON (s.st_staffno = r.ren_st_staffno)
WHERE
s.st_commperc != NULL
GROUP BY
s.st_staffno, s.st_name, s.st_position;
Но я получаю следующие ошибки:
Msg 8120, уровень 16, состояние 1, строка 2
Колонка 'dbo.staff.st_salary' недопустим в списке выбора, потому что это не содержащихся ни в агрегатной функции, ни в предложении GROUP BY.Msg 8120, уровень 16, состояние 1, строка 2
Колонка «dbo.staff.st_commperc» недопустим в списке выбора, поскольку он не содержится ни в статистической функции или предложения GROUP BY.
Сообщение об ошибке очень Чисто. Либо используйте функцию агрегации (может быть 'SUM') в' s.st_salary * s.st_commperc/100' или группу по этим столбцам тоже, зависит от результата, который вы хотите – Lamak
Предложение Where должно быть «WHERE s.st_commperc IS NOT NULL " –
@ GordonBell хороший улов – Lamak